检查复选框状态,这是在Dataitemtemplate devexpress gridview当按钮从后面的代码点击
本文关键字:按钮 代码 gridview 状态 复选框 devexpress Dataitemtemplate 检查 | 更新日期: 2023-09-27 18:17:10
我想检查复选框的状态,这是在devexpress网格视图中的数据项模板内,当用户单击ok按钮这是我的aspx代码gridviewColumn
<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>
现在当ok按钮被点击时,我想检查服务器端cbDwnloadConfig的状态
我在cs文件中使用了以下代码来访问数据项模板控件,但是checked状态总是为false。
ASPxCheckBox cbDwnload = gvDataSrc.FindRowCellTemplateControl(rwIndex[i], gvDataSrc.Columns["dwnloadConfig"] as GridViewDataColumn, "cbDwnloadConfig") as ASPxCheckBox;
那么,检查dataitemtemplate内部的复选框状态的正确方法是什么?
可能是你在PageLoad方法中绑定了网格视图,这可能会导致这种行为。
你应该按照以下方式绑定你的网格视图
if(!page.IsPostBack)
{
//BIND YOUR GRID
}
上面的将防止在单击按钮时重新绑定gridview
对于那些有同样问题的人,我已经找到了解决问题的方法,我必须使用回调来处理这个问题。
<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]);
谢谢!