GridView加入 CheckBox为什么得不到CheckBox.Checked==true?

大漠苍狼woft 2010-08-19 09:30:54
相关代码
前台
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>
<asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="id" DataNavigateUrlFormatString="content.aspx?id={0}" DataTextField="title" HeaderText="标题">
<ItemStyle Font-Size="Smaller" HorizontalAlign="Left" Height="25px"></ItemStyle>
</asp:HyperLinkField>
</Columns>
</GridView >
<asp:CheckBox ID="CheckBox2" runat="server" Text="全选" oncheckedchanged="CheckBox2_CheckedChanged" AutoPostBack="True" />
<asp:Button ID="Button2" runat="server" Text="取消" onclick="Button2_Click" />   
<asp:Button ID="Button3" runat="server" Text="删除" onclick="Button3_Click" />

后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("CheckBox1")).Checked = true;
}
}
private void Bind()
{
//相关绑定数据
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
}

protected void Button2_Click(object sender, EventArgs e)
{
CheckBox2.Checked = false;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked = false;
}
}

protected void Button3_Click(object sender, EventArgs e)
{
for (int i = 0; i <= this.GridView1.Rows.Count - 1; i++)
{

CheckBox cbox = (CheckBox)(GridView1.Rows[i].Cells[1].FindControl("CheckBox1"));
if (cbox.Checked == true)
{

SqlCommand comm = new SqlCommand("delete from book where id='" + GridView1.DataKeys[i].Value + "'", sqlconn);
sqlconn.Open();
comm.ExecuteNonQuery();
sqlconn.Close();
}
}
Bind();
}
...全文
307 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-11-23
  • 打赏
  • 举报
回复
本人有一个超级群:102550065,可以加500个人。希望大家一起探讨ASP,C#等技术。愿意加的都进来。此群才开通,还没有什么人。
Robinfu2013 2010-11-23
  • 打赏
  • 举报
回复
首先 Checked 就是获取或者设置一个 boolean值吧?
  • 打赏
  • 举报
回复

for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cb.Checked)
{
// ......
}
}
Issac25Name 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jinkuang45 的回复:]
C# code
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
bool commend = (((CheckBox)(GridView1.Rows[e.RowIndex].Cells[2].FindControl("CheckBox1"))).Checked == tr……
[/Quote]

就是这样搞定啊1
ynrsboy 2010-11-23
  • 打赏
  • 举报
回复
以上的方法我试过都不行
楼主,解决了吗?我被困扰了一下午了,帮帮忙啊
hbh850121 2010-08-19
  • 打赏
  • 举报
回复
改成
if (cbox.Checked)

这样的啦,我之前也遇到这样的问题,只是不知道是什么原因导致的
wuyq11 2010-08-19
  • 打赏
  • 举报
回复
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.FindControl("CheckBox1")).Checked = true;
}
通过JS全选
冰川711 2010-08-19
  • 打赏
  • 举报
回复
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
bool commend = (((CheckBox)(GridView1.Rows[e.RowIndex].Cells[2].FindControl("CheckBox1"))).Checked == true ? true: false);
}
q107770540 2010-08-19
  • 打赏
  • 举报
回复
((CheckBox)row.Cells[0].FindControl("CheckBox1")).Checked = true;
===============
((CheckBox)row.FindControl("CheckBox1")).Checked = true;

CheckBox cbox = (CheckBox)(GridView1.Rows[i].Cells[1].FindControl("CheckBox1"));
===========
CheckBox cbox = (CheckBox)(GridView1.Rows[i].FindControl("CheckBox1"));

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧