在GridView,Bit Datatype,asp.net中获取CheckBox的值

时间:2013-05-08 17:16:31

标签: gridview types checkbox bit

  1. 我是初学者,问题或语法可能很傻。
  2. 我绘制了一个基于SqlDataSource查询的网格视图。
  3. 将状态字段转换为位。
  4. 会自动创建一个复选框。
  5. 现在如何在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:未将对象引用设置为对象的实例。

    显示

    错误。 请帮忙。

2 个答案:

答案 0 :(得分:1)

当你动态添加一个控件时,你应该再次加载控件,它不会在控制树中列出。为了找到它你可以使用一个循环找到它就像在这篇文章中所说的那样 Better way to find control in ASP.NET

另请看这篇文章:它似乎很有用ASP.Net FindControl is not working - How come?

答案 1 :(得分: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()有效。