aspxgridview中下拉列表动态绑定并选择某项提交

 1. 动态绑定

protected void ASPxGridView_ygzl_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)

        {
            if (e.RowType == DevExpress.Web.GridViewRowType.Data)
            {
                ASPxComboBox cbx = ASPxGridView_ygzl.FindRowCellTemplateControl(e.VisibleIndex, null, "ASPxComboBox_jzg_js") as ASPxComboBox;
                if (cbx != null)
                {
                    if (Session["dngly068"] == null)
                    {
                        this.ASPxLabel_tytsxx.Text = "你在本页面停留且没有进行任何操作,时间过长关系到数据信息安全,请单击【退出系统】后重新登录!";
                        this.ASPxPopupControl_tytsxx.ShowOnPageLoad = true;
                        return;
                    }
                    admin_user gly = (admin_user)Session["dngly068"];
                    //选角色中每行绑定value绑定主键,text绑定角色
                    var cx_ygjs = from aa in sjklj.员工角色
                                  where aa.单位id == gly.dwid
                                  select aa;
                    //获取主键
                    int id = (int)e.KeyValue;//定位到某一行,唯一性
                                             // cbx.Items.Clear();
                    if (cbx.Items.Count == 0)
                    {
                        foreach (var kk in cx_ygjs)
                        {
                            cbx.Items.Add(kk.角色名称);
                        }
                        cbx.Value = null;
                        cbx.Text = "";
                    }
                }
            }

        }

2. 界面中加入下拉列表和按钮控件

 <DataItemTemplate>
                                                                                  <table align="center" width="100%" cellpadding="2px"  cellspacing="2px">
                                                                                      <tr>
                                                                                          <td>
                                                                                              <dx:ASPxComboBox ID="ASPxComboBox_jzg_js" Width="150px" runat="server" ValueType="System.String"
                                                                                      NullText="选择角色"
                                                                                      AutoPostBack="false">

//这里不能设置为true,原因在于:下拉列表autopostback回转后,执行form-load,再执行aspxgridview的htmlrowcreated,下拉列表又被初始化加载了,所以又回到第一项。
                                                                                       
                                                                                  </dx:ASPxComboBox>
                                                                                          </td>
                                                                                          <td>
                                                                                              <dx:ASPxButton ID="ASPxButton_jzg_js" runat="server" Text="确认"
                                                                                                  CommandName="cbn_jzg_js">
                                                                                                    <ClientSideEvents Click="function(s, e) {onCallbackStart();}" />
                                                                                              </dx:ASPxButton>
                                                                                          </td>
                                                                                      </tr>
                                                                                  </table>
                                                              
                                                                              </DataItemTemplate>

3. rowcommand中按钮提交识别

ASPxButton btn = (ASPxButton)e.CommandSource;
            if(btn.CommandName== "cbn_jzg_js") //单击了确认按钮
            {
                int rowsy = e.VisibleIndex;
                int id = int.Parse(e.KeyValue.ToString());
                //找到选中的某一项 ASPxComboBox_jzg_js
                ASPxComboBox cbx = (ASPxComboBox)this.ASPxGridView_ygzl.FindRowCellTemplateControl(rowsy, null, "ASPxComboBox_jzg_js");
                if (Session["dngly068"] == null)
                {
                    this.ASPxLabel_tytsxx.Text = "你在本页面停留且没有进行任何操作,时间过长关系到数据信息安全,请单击【退出系统】后重新登录!";
                    this.ASPxPopupControl_tytsxx.ShowOnPageLoad = true;
                    return;
                }
               
                //cbx的text为角色名称 value为主键
                if (cbx.SelectedItem.Value != null)
                {
                    string jsmc = cbx.SelectedItem.Text.Trim();
                    
                    var cx_zdyg = from aa in sjklj.员工
                                  where aa.ID == id
                                  select aa;
                    cx_zdyg.First().角色名称 = jsmc;
                    sjklj.SaveChanges();
                    //刷新页面显示
                    ASPxButton_cxjzg_Click(null, null);
                }
            }

渝公网安备 50011902000225号

渝ICP备18008233号-1