请教HtmlInputCheckBox问题

wonder_zs 2009-12-28 03:08:38
这是ASP.net代码。

<asp:TemplateField>
<HeaderTemplate>
<input id="chAll" type="checkbox" runat="server" onclick="SelectAll(this)" />
</HeaderTemplate>
<ItemTemplate>
<input id="chChild" name="chChild" type="checkbox" runat="server"/>
</ItemTemplate>
</asp:TemplateField>

protected void btnDelete_Click(object sender, ImageClickEventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
//Response.Write("<script>window.alert('" + checkbox.Checked.ToString() + "');</script>");

if (checkbox.Checked)
{
int id = Convert.ToInt32(GridView1.DataKeys[i].Value);
Response.Write("<script>window.alert('"+ id.ToString() +"');</script>");
//notice.Delete(id);
}
}
notice.Delete(i);
Response.Write("<script>window.alert('删除成功!');window.location.href='NoticeList.aspx';</script>");
}
...全文
200 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复

string str = Request["chAll"];

我在选择了页面上的checkbox后,str得到的也为空。服了
flyerwing 2009-12-28
  • 打赏
  • 举报
回复
foreach (RepeaterItem r in rptSms.Items)
{
HtmlInputCheckBox ckbx = (HtmlInputCheckBox)r.FindControl("SmsId");
if (ckbx.Checked)
{
if(ckbx.Value!=null&&ckbx.Value.Trim()!="") {
lst.Add(ckbx.Value.Trim()); }
}
}

这个看看了!
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chenjianyong94 的回复:]
那你在前台的checkbox 的name 全部取名为chChild,value 值绑定上,直接在后台的按钮事件中去 request["chChild"],

若:选中的话,把它的value值,取出来,就可以了。。。

若:一个都不选,则取出来为null。
[/Quote]
你能给出完整代码吗????
wosizy 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wonder_zs 的回复:]
引用 12 楼 wosizy 的回复:
引用 11 楼 lovely_baby 的回复:
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
这样可以得到控件值??

我也怀疑  所以我在代码里加了一个判断
if (chk != null)  LZ 可以加个判断的
这个是没有问题的。我测试过了。checkbox不为空!
[/Quote]
你把它去掉试试
name= "chChild "
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wosizy 的回复:]
引用 11 楼 lovely_baby 的回复:
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
这样可以得到控件值??

我也怀疑  所以我在代码里加了一个判断
if (chk != null)  LZ 可以加个判断的
[/Quote]这个是没有问题的。我测试过了。checkbox不为空!
wosizy 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lovely_baby 的回复:]
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
这样可以得到控件值??
[/Quote]
我也怀疑 所以我在代码里加了一个判断
if (chk != null) LZ 可以加个判断的
Lovely_baby 2009-12-28
  • 打赏
  • 举报
回复
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
这样可以得到控件值??
凤凰涅檠 2009-12-28
  • 打赏
  • 举报
回复
同 9楼的,用Request.Form[]
chenjianyong94 2009-12-28
  • 打赏
  • 举报
回复
那你在前台的checkbox 的name 全部取名为chChild,value 值绑定上,直接在后台的按钮事件中去 request["chChild"],

若:选中的话,把它的value值,取出来,就可以了。。。

若:一个都不选,则取出来为null。
dd__dd 2009-12-28
  • 打赏
  • 举报
回复
我一般这么用
<input name= "chAll " type= "checkbox " runat= "server " onclick= "SelectAll(this) " value='<%#Eval("ID")%>' />
后台
Request.Params["chAll "].ToString()取出的是你选中的Checkbox的value值的集合
wosizy 2009-12-28
  • 打赏
  • 举报
回复
把这行换成你的 inpt CheckBox
chk = (CheckBox)this.grv_CustomerIncomeTbl.Rows[i].FindControl("chk_Item");
foxsorange 2009-12-28
  • 打赏
  • 举报
回复
GridView1.Rows[i].FindControl这里好像找不到控件,
GridView1.Rows[i].cell[0].FindControl试试
wosizy 2009-12-28
  • 打赏
  • 举报
回复
下面是我的一段 获取CheckBox打钩的代码 你看看· 我用的是asp:CheckBox 你只需改一行代码
//循环 GridView
for (int i = 0; i < this.grv_CustomerIncomeTbl.Rows.Count; i++)
{
//获取 CheckBok 控件
chk = (CheckBox)this.grv_CustomerIncomeTbl.Rows[i].FindControl("chk_Item");
//如果控件为选中
if (chk != null)
{
if (chk.Checked)
{
dt_CtrtDetl.Rows[i].Delete();//删除选中行
}
}
}
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复
一楼代码杯具了
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复

<asp:TemplateField>
<HeaderTemplate>
<input id="chAll" type="checkbox" runat="server" onclick="SelectAll(this)" />
</HeaderTemplate>
<ItemTemplate>
<input id="chChild" name="chChild" type="checkbox" runat="server"/>
</ItemTemplate>
</asp:TemplateField>

gridview的checkbox列
wonder_zs 2009-12-28
  • 打赏
  • 举报
回复

protected void btnDelete_Click(object sender, ImageClickEventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
HtmlInputCheckBox checkbox = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("chChild");
//Response.Write("<script>window.alert('" + checkbox.Checked.ToString() + "');</script>");

if (checkbox.Checked)
{
int id = Convert.ToInt32(GridView1.DataKeys[i].Value);
Response.Write("<script>window.alert('"+ id.ToString() +"');</script>");
//notice.Delete(id);
}
}
notice.Delete(4);
Response.Write("<script>window.alert('删除成功!');window.location.href='NoticeList.aspx';</script>");
}

这是操作,点击按钮后,获取各行checkbox.checked值,可是问题是我无论如何都无法获得checked的值,始终是false,可是我明明已经选中了
chenjianyong94 2009-12-28
  • 打赏
  • 举报
回复
?????

62,047

社区成员

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

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

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

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