从gridview获取复选框值

时间:2014-01-04 18:03:47

标签: c# asp.net

我不确定我做错了什么。我理解错误消息,但不知道如何纠正问题。我有一个网格,我有一个复选框,我想得到它的值,检查或取消选中。

在gv_RowUpdating中,我有以下代码可以与其他控件一起使用,例如文本框但不能与复选框一起使用。

bool active = ((CheckBox)gvLinks.Rows[e.RowIndex].Cells[6].Controls[0]).Checked;

我得到的错误是Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.CheckBox'

我遇到了几个例子,但我看到的没有一个例子与我的情况相同。示例包括迭代到gridview的控件或使用FindControl构造。在我的情况下,复选框存在并具有值,但问题是铸造(我认为)。感谢。

2 个答案:

答案 0 :(得分:3)

试试这个

    CheckBox chkb = (CheckBox)row.FindControl("chkb");

    if (((CheckBox)row.FindControl("chkb")).Checked)
    {
       //Your Code
    }

答案 1 :(得分:1)

该单元格中的第一个控件不是您认为的CheckBox。我们假设gvLinks.Rows[e.RowIndex]可以安全地为您提供所需的行。做点什么试试

CheckBox cxbx  = gvLinks.Rows[e.RowIndex].FindControl("CheckBoxIdName") as CheckBox;
bool active=cxbx.Checked;

来自:Unable to cast object of type ‘System.Web.UI.LiteralControl’ Error