【发布时间】:2014-05-16 18:25:28
【问题描述】:
我有一个带有复选框的 GridView。如果我单击一个复选框,我想获取该行中的值。 问题是 chk(在 C# 代码中)永远不会获得值“true”,因此代码永远不会进入 if 语句。
感谢您的帮助。我已经在这个问题上花了两个晚上。
C#
protected void btnChange_Click(object sender, EventArgs e)
{
string id= "";
string name = "";
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("myCheckBox");
if (chk != null && chk.Checked)
{
id = row.Cells[1].Text;
name = row.Cells[2].Text;
}
}
}
ASP.NET
<div style="height:200px; width:450px; overflow:scroll;">
<asp:GridView ID="GridView1" runat="server" GridLines="Horizontal" HeaderStyle-BackColor="#FFF8C6" HeaderStyle-ForeColor="Black" Height="200px" Width="450px">
<HeaderStyle HorizontalAlign="Left" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="myCheckBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
【问题讨论】:
-
chk是否为 null 或chk.Checked始终为 false?另外,您是否肯定您的 JavaScript 函数没有将其设置为 false? -
我已经删除了 JS(参见 ASP.NET 代码)。 chk 总是假的。
-
您实际上是在调试器中单步执行代码还是假设它总是错误的?
-
我还认为 JavaScript 可能会对代码做一些事情,因此我从 ASP.NET 代码中删除了 JS 调用。我这里也删了。
-
@Rick S 我已经通过代码发现 Checked 总是错误的
标签: c# javascript asp.net gridview