我不确定我做错了什么。我理解错误消息,但不知道如何纠正问题。我有一个网格,我有一个复选框,我想得到它的值,检查或取消选中。
在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
构造。在我的情况下,复选框存在并具有值,但问题是铸造(我认为)。感谢。
答案 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