获取GridView中的ID值

kahou_003 2011-02-17 06:26:19
有一个GridView代码如下:
<asp:GridView ID="GridView_WarningList" runat="server" CssClass="warninglist"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID"
PageSize="18" AllowPaging="true"
onpageindexchanging="GridView_WarningList_PageIndexChanging">
<Columns>

<asp:BoundField DataField="ID" HeaderText="编号"/>
<asp:BoundField DataField="Title" HeaderText="信息标题" />
<asp:BoundField DataField="Time" HeaderText="时间" DataFormatString="{0:yyyy-mm-dd}" />
<asp:TemplateField HeaderText="操作" >
<ItemTemplate>
<asp:Button ID="check_btn" runat="server" Text="查看" CssClass="admin_control"/>
<asp:Button ID="alter_btn"
runat="server" Text="修改" CssClass="admin_control" OnClick="Alter_Click" />

问题:如何在“修改按钮”的“OnClick”事件“Alter_Click”中获取该行对应的“ID”值?
后台方法:
protected void Alter_Click (object sender,EventArgs e)
{

}

<asp:CheckBox ID="select_box" runat="server" CssClass="admin_control"/></ItemTemplate>
</asp:TemplateField>
</Columns>
<SelectedRowStyle BackColor="#eeeef6" />
<PagerStyle BackColor="#eeeef6" Font-Bold="true" Font-Underline="true" HorizontalAlign="Left" />
<HeaderStyle CssClass="warninglist_header"/>
<FooterStyle CssClass="warninglist_footer"/>
</asp:GridView>
...全文
1098 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
handemeng 2011-02-18
  • 打赏
  • 举报
回复
gvwList.DataKeys[i].Value.ToString()
shaxuli 2011-02-18
  • 打赏
  • 举报
回复
如果遇到DropDownList呢?
子夜__ 2011-02-18
  • 打赏
  • 举报
回复
还是要多做DEMO啊。
gongjie416 2011-02-18
  • 打赏
  • 举报
回复
13楼的最简单了,也最常用,不会出错,用CommanArgument绑定
shaxuli 2011-02-18
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" aaa='<%# Eval("ID")%>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


protected void Button1_Click(object sender, EventArgs e)
{
Button b=sender as Button;
int index = Convert.ToInt32(b.Attributes["aaa"].ToString());
Response.Write(id.ToString());
}
kahou_003 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huangwenquan123 的回复:]

HTML code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:Bound……
[/Quote]
3Q...
shaxuli 2011-02-18
  • 打赏
  • 举报
回复
以前我也经常遇到这样的问题,在GRIDVIEW里获得比如 下拉列表框 然后要获得ID,按钮还强点,可以使用commandArgument 那些根据name判断获取。前几天使用Attributes获得,效果是相当好啊,哈哈
shaxuli 2011-02-18
  • 打赏
  • 举报
回复
楼上已经说了一些方法,还可以通过
对<asp:Button ID="alter_btn"
runat="server" Text="修改" aaa='<%# Eval("ID")%>' CssClass="admin_control" OnClick="Alter_Click" />

后台将E转换为BUTTON 然后 button.Attributes["aaa"] 来获得,貌似是这样,不知道写的对不对,你试试?
xiaoyuan402 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wangoqoq 的回复:]
还有个更加简单的方法 你在按钮里面绑定“ID”值就OK了
asp:Button ID="alter_btn"
runat="server" Text="修改" CssClass="admin_control" OnClick="Alter_Click" CommandName="SelectData" CommandArgument='<%#Eval("ID") %>' />
在后台激发……
[/Quote]



这个也是比较常用的。。不会出错。
nandy249407850 2011-02-18
  • 打赏
  • 举报
回复
有很多人、说了很多相同的方法
wangoqoq 2011-02-18
  • 打赏
  • 举报
回复
还有个更加简单的方法 你在按钮里面绑定“ID”值就OK了
asp:Button ID="alter_btn"
runat="server" Text="修改" CssClass="admin_control" OnClick="Alter_Click" CommandName="SelectData" CommandArgument='<%#Eval("ID") %>' />
在后台激发RowCommand事件就能获取到
if (e.CommandName == "SelectData")
{
string strDataKey = e.CommandArgument.ToString();
}
qqhahazxxqq 2011-02-18
  • 打赏
  • 举报
回复
gv.RowIndex 就是你点击行的索引
qqhahazxxqq 2011-02-18
  • 打赏
  • 举报
回复

protected void Alter_Click (object sender,EventArgs e)
{
Button Ig = (Button)sender;
GridViewRow gv = (GridViewRow)Ig.Parent.Parent;
string strID= GridView_WarningList.DataKeys[gv.RowIndex].Values[0];
}
yangyalin8425 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huangwenquan123 的回复:]

HTML code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:Bound……
[/Quote]
可以试试
huangwenquan123 2011-02-18
  • 打赏
  • 举报
回复
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

    protected void Button1_Click(object sender, EventArgs e)
{
int index = ((GridViewRow)(sender as Button).Parent.Parent).RowIndex;
int id = Convert.ToInt32(GridView1.Rows[index].Cells[0].Text);
Response.Write(id.ToString());
}
kahou_003 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 timzhufaith 的回复:]

yes引用 3 楼 kahou_003 的回复:
引用 2 楼 timzhufaith 的回复:

可以绑定的
后台用rowcommand事件

是不是这个思路???
http://topic.csdn.net/u/20110217/18/c32afa1b-0341-40e3-a589-bb2e4edd20fc.html
[/Quote]

可是这里面的问题怎么解决啊???
TimZhuFaith 2011-02-17
  • 打赏
  • 举报
回复
yes[Quote=引用 3 楼 kahou_003 的回复:]
引用 2 楼 timzhufaith 的回复:

可以绑定的
后台用rowcommand事件

是不是这个思路???
http://topic.csdn.net/u/20110217/18/c32afa1b-0341-40e3-a589-bb2e4edd20fc.html
[/Quote]
kahou_003 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 timzhufaith 的回复:]

可以绑定的
后台用rowcommand事件
[/Quote]
是不是这个思路???
http://topic.csdn.net/u/20110217/18/c32afa1b-0341-40e3-a589-bb2e4edd20fc.html
TimZhuFaith 2011-02-17
  • 打赏
  • 举报
回复
可以绑定的
后台用rowcommand事件
加载更多回复(1)

62,254

社区成员

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

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

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

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