GridView 中的 CheckBox“已检查”值始终为 false
Posted
技术标签:
【中文标题】GridView 中的 CheckBox“已检查”值始终为 false【英文标题】:CheckBox "Checked" value in GridView is always false 【发布时间】:2015-02-12 16:09:34 【问题描述】:我在gridview
中使用checkbox
列,该列是从SQL
数据库填充的。 gridview
下方的按钮应检索已检查 checkboxe's
的行的数据。当我遍历所有行checkboxe's
时,即使我在单击按钮之前已经检查了所有行,它们都没有checked==true
。这是ASP.NET
代码:
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkRow" runat="server" />
</ItemTemplate>
</asp:TemplateField>
这里是循环遍历所有行的复选框的按钮操作:
protected void GetSelectedRecords(object sender, EventArgs e)
foreach (GridViewRow row in GridView1.Rows)
if (row.RowType == DataControlRowType.DataRow)
CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);
if (chkRow != null && chkRow.Checked) //chkRow.Checked is always "false"
string name = row.Cells[2].Text;
提前非常感谢。非常感谢任何帮助。
【问题讨论】:
试试这个:-row.FindControl("chkRow") as CheckBox
谢谢。我已经尝试过这个,但也没有用。
你能发布我的意思是包括标记的完整代码吗?一定是发生了其他事情,因为您的代码看起来不错。
感谢您的关注;问题已经解决了。
【参考方案1】:
如果您在Page_Load
中绑定您的网格,请确保您没有在if(!IsPostBack)
之外绑定您的网格。否则,您将丢失每个postback
上的checkboxe's
,从而失去checkboxe's
的状态。
protected void Page_Load(object sender, EventArgs e)
if(!IsPostBack)
//Bind Your Grid Here
【讨论】:
谢谢。这种方式正是问题所在。非常感谢。以上是关于GridView 中的 CheckBox“已检查”值始终为 false的主要内容,如果未能解决你的问题,请参考以下文章
.net中,如何获取到gridview控件中的checkbox控件的值?
在android app中的gridview里面这么添加checkbox?