您能帮我吗,即使我在gridview中检查控件,我也总是将复选框控件的值设置为false。
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox CheckBox1 = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox1 != null)
{
if (CheckBox1.Checked)
{
query = GridView1.Rows[i].FindControl("Label1") + ",";
}
}
}
最佳答案
您是否在Page_Load方法上进行数据绑定?如果是,则必须执行以下操作:
if(!IsPostBack)
{
GridView1.DataSource = YourData;
}
如果您不这样做,即使您的
DataGridView
是PostBack
,也会被数据绑定。这样,无论您进行了什么检查,都会从数据源中重新填充DataGridView
进行回发。使用上面的代码,当您执行
if(!IsPostBack)
时,它将保留复选框的viewstate值,并且您将获得正确的Checked
状态。