0
  1. 我是初学者,问题或语法可能很愚蠢。
  2. 我绘制了一个基于 SqlDataSource 查询的网格视图。
  3. 将状态字段转换为位。
  4. 自动创建一个复选框。

现在我怎样才能获得 SelectedIndexChanged 上复选框的值。

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Panel_Entry.Visible = true;
        int i = GridView1.SelectedIndex;
        String vDescr = GridView1.Rows[i].Cells[2].Text;
        CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("BitStatus");
        Response.Write(chk.ToString()+vDescr);}

System.NullReferenceException:对象引用未设置为对象的实例。

显示错误。请在这方面提供帮助。

4

2 回答 2

1

当您动态添加控件时,您应该再次加载该控件,它不会在控件树中列出。为了找到它,您可以使用循环来查找它,就像这篇文章中所说的 更好的方法在 ASP.NET 中查找控件

也看看这个帖子:它似乎有用ASP.Net FindControl is not working - 怎么会?

于 2013-05-08T17:39:59.530 回答
0

谢谢大家...我找到了解决方案。

CheckBox chk = (CheckBox)GridView1.Rows[i].Cells[3].Controls[0]; if (chk.Checked) { Response.Write("yes"); } else { Response.Write("no"); } 它工作正常。如果我们使用一些 asp:template itemtemplate 等,findcontrol() 可以工作。

于 2013-05-08T17:45:24.220 回答