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);
}
}