C# 复选框未选中时始终返回true
我嵌套了C# 复选框未选中时始终返回true,c#,asp.net,gridview,checkbox,C#,Asp.net,Gridview,Checkbox,我嵌套了Gridview,最后一个Gridview有复选框 选中复选框时的条件是选中还是取消选中该复选框 foreach (GridViewRow gvr in GridView1.Rows) { GridView GridView2= gvr.FindControl("GridView2") as GridView; foreach (GridViewRow gvr2 in GridView2.Rows) { GridView G
Gridview
,最后一个Gridview
有复选框
选中复选框时的条件是选中还是取消选中该复选框
foreach (GridViewRow gvr in GridView1.Rows)
{
GridView GridView2= gvr.FindControl("GridView2") as GridView;
foreach (GridViewRow gvr2 in GridView2.Rows)
{
GridView GridView3= gvr2.FindControl("GridView3") as GridView;
foreach (GridViewRow gvr3 in GridView3.Rows)
{
if(((CheckBox)gvr3.FindControl("chk1")).Checked)
{
string txt = txtKeyboard.text;
}
}
}
}
即使未选中该选项,也会检查条件如何将数据绑定到“GridView2”控件?如果调用了一些方法,如“GridView2_DataBind”,则在处理回发数据后,girdview的状态将重置
比如说,
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack){
GridView2_DataBind() // you shouldn't call databind method when postback
}
}
请尝试一次,而不是上面的代码
CheckBox chk1 = gvr3.Cells[0].Controls[0] as CheckBox;
if(chk1.checked==true)
{
string txt = txtKeyboard.text;
}
在这里,您需要设置单元格值和控制值来代替0
发布更多代码来识别问题您确定引用了正确的网格行和正确的复选框吗?除非你在执行这个循环之前在其他地方的代码中检查它,或者你引用了错误的复选框,否则没有理由不起作用。是的,我肯定我引用了GridView中正确的复选框。请发布整个类。如果你不这样做,我们就帮不了你。你在哪里写的这段代码?我是说哪个事件?不,我没有在回发中绑定网格,也没有将取消选中的按钮返回到true@Registered_User012345我clearey在这里提到,您需要设置单元格的值(从Gridview3开始的复选框顺序)和控件来代替0。抱歉,我仔细检查了控件的位置并更正了它。即使复选框为unchecked@Registered_User012345请输入您的ASPX代码或访问
CheckBox chk1 = gvr3.Cells[0].Controls[0] as CheckBox;
if(chk1.checked==true)
{
string txt = txtKeyboard.text;
}