当用户点击确定按钮时,我想检查devexpress网格视图中数据项模板内的复选框状态 这是我的gridviewColumn的aspx代码
<Columns>
<dx:GridViewDataColumn Caption="Data Source" FieldName="dataSrc" VisibleIndex="1"></dx:GridViewDataColumn>
<dx:GridViewDataColumn Caption="Download" FieldName="dwnloadConfig" VisibleIndex="2" Width="70px" >
<DataItemTemplate>
<dx:ASPxCheckBox ID="cbDwnloadConfig" ClientInstanceName="cbDwnloadConfig
" runat="server" >
</dx:ASPxCheckBox>
</DataItemTemplate>
</Columns>
现在单击确定按钮时,我想检查服务器端的cbDwnloadConfig状态
我在cs文件上使用以下代码来访问dataitem模板控件,但是检查状态始终为false。
ASPxCheckBox cbDwnload = gvDataSrc.FindRowCellTemplateControl(rwIndex[i], gvDataSrc.Columns["dwnloadConfig"] as GridViewDataColumn, "cbDwnloadConfig") as ASPxCheckBox;
那么检查dataitemtemplate中复选框状态的正确方法是什么?
答案 0 :(得分:0)
可能是您在PageLoad方法中绑定了网格视图,这可能会导致此行为。
您应该按照以下方式绑定网格视图
if(!page.IsPostBack)
{
//BIND YOUR GRID
}
上面将阻止在单击按钮时重新绑定gridview。
答案 1 :(得分:0)
对于那些有同样问题的人,我找到了问题的解决方案, 我不得不使用回调来解决这个问题。
<Columns>
<dx:GridViewDataColumn Caption="Data Source" FieldName="dataSrc" VisibleIndex="1"></dx:GridViewDataColumn>
<dx:GridViewDataColumn Caption="Download" FieldName="dwnloadConfig" VisibleIndex="2" Width="70px" >
<DataItemTemplate>
<dx:ASPxCheckBox ID="cbDwnloadConfig" ClientInstanceName="cbDwnloadConfig" runat="server" >
<ClientSideEvents CheckedChanged="function(s,e)
{dwnloadSrc.PerformCallback(s.GetChecked());
}"></ClientSideEvents>
</dx:ASPxCheckBox>
</DataItemTemplate>
</Columns>
C#
protected void dwnloadSrc_OnCallback(object source, CallbackEventArgs e)
{
var param = e.Parameter;
//now check the paramater
//and do your magic
}
你也可以从前端/ aspx一次传递两个或多个参数 为此,只需这样做:
dwnloadSrc.PerformCallback(s.GetChecked()+'_'+ gv.FocusedRowsIndex())
在后面的代码中你可以查看参数:
var param = e.Parameter;
var newParam = param.Split('_');
bool state = Convert.ToBoolean(newParam[0]);
int rwIndex = Convert.ToInt32(newParam[1]);
谢谢!