GridView 中 checkBox 触发事件 参数 问题(等等等)

马老虎 2009-03-05 10:10:20
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" DataKeyNames="id" Oncheckedchange =cbkchange">
<Columns>
<asp:TemplateField>
<ItemTemplate><asp:CheckBox ID="ckbHome" runat="server" Checked='<%# Eval("home_show")%>' >
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


问题是后台的方法 怎么得到所选择行的 id 值!谢谢大家。
...全文
505 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
heiwer 2010-11-08
  • 打赏
  • 举报
回复
刚找的办法
CheckBox checkbox = (CheckBox)sender;
GridViewRow row = (GridViewRow)checkbox.NamingContainer;
Label labId = (Label)GridView1.Rows[row.RowIndex].FindControl("labId");
clever_yang 2009-03-05
  • 打赏
  • 举报
回复
很简单~,,不过现在没时间给你写~。。。
如果你晚上还没解决的话,我就给你写一个·。。。
马老虎 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yijianxiangde100 的回复:]
帮楼主顶了,在关注中。
[/Quote]
谢谢 兄弟!
难道这个解决不了吗?
yijianxiangde100 2009-03-05
  • 打赏
  • 举报
回复
帮楼主顶了,在关注中。
马老虎 2009-03-05
  • 打赏
  • 举报
回复
触发CheckBox 事件,想获得所在行的ID!
koukoujiayi 2009-03-05
  • 打赏
  • 举报
回复
你想哪个事件中取id,
这个id是GridView中的数据行的id吗?
马老虎 2009-03-05
  • 打赏
  • 举报
回复
啊啊?没人!
哦, 卖糕的!!
马老虎 2009-03-05
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" DataKeyNames="id">
<Columns>
<asp:TemplateField>
<ItemTemplate><asp:CheckBox ID="ckbHome" runat="server" Checked='<%# Eval("home_show")%>' Oncheckedchange ="cbkchange">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
修改一下!
马老虎 2009-03-05
  • 打赏
  • 举报
回复
很 感谢飞鸟!
解决方法是 把id绑定到checkbox 的 tooltip 属性里!
马老虎 2009-03-05
  • 打赏
  • 举报
回复
飞鸟啊?不是你说的那样的!
我想弄明白的是 比如:
7行数据,每行都有一个 checkbox(有的被选,有的没被选) ,当单击任何一个 checkbox的时候,去触发后台的方法。
在后台的方法中,怎么得到 该行的绑定的id!
findControl 找的是7个checkbox 但是怎么能知道 我单击的是那个啊??

clever_yang 2009-03-05
  • 打赏
  • 举报
回复
兄弟,你先试下吧,如果不行就加我QQ吧: 249786437..
GOOD LUCK
clever_yang 2009-03-05
  • 打赏
  • 举报
回复
其实就是当你选择了项以后 我们遍历每一个GRIDVIEWITEM,然后再每个GRIDVIEWITEM上面用FINDCONTROL找到GRIDVIEW上面的CHECKBOX控件,(记住FINDCONTROL找到的都是OBJECT类型的,你需要强制转换)
然后 再判断CHECKBOX是否有选中,选中了你就可以去CHECKBOX一些属性的值,,比如你可以把你的ID放到CHECKBOX里面的VALUE里面,或者TOOLTIP里面
马老虎 2009-03-05
  • 打赏
  • 举报
回复

说说原理啊!
clever_yang 2009-03-05
  • 打赏
  • 举报
回复

<Columns>
<asp:TemplateColumn HeaderText="<input id=cbAll type=checkbox onclick='javascript:changeCheckValue();'></input>">
<itemstyle wrap="False" horizontalalign="Center" cssclass="white"></itemstyle>
<itemtemplate>
<INPUT id="selectID" type="checkbox" value='<%#DataBinder.Eval(Container.DataItem, "id").ToString()%>'
title='<%#DataBinder.Eval(Container.DataItem, "id").ToString()%>'
size='<%#DataBinder.Eval(Container.DataItem, "CollectionID").ToString()%>'
runat="server" NAME="selectID">
</itemtemplate>
<headerstyle wrap="False" horizontalalign="Center" width="3%"></headerstyle>
</asp:TemplateColumn>


foreach (DataGridItem item in ListDataGrid.Items)
{
HtmlInputCheckBox chk = (HtmlInputCheckBox)item.FindControl("selectID");

if (chk != null && chk.Checked)
{
//Response.Write(chk.Value.ToString() + "," + chk.Attributes["size"].ToString());
SetIsRemovedStatus(trans, ddlCustomerID.SelectedValue, chk.Value.ToString().Trim(), chk.Attributes["size"].ToString().Trim());
}
}


给你一个我现在在用的。 我在里面是用的HTML控件,你也可以选择用ASP:CHECKBOX

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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