gridview 取得某行的 datakey

kleindelphin 2007-10-18 10:25:16
GridView 中每行最后一列设有按钮,我需要在点击按钮后,得到该行的Datakey得值,然后触发其他操作。请教如何实现。
...全文
3396 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoge_1982 2008-08-27
  • 打赏
  • 举报
回复
To: SunLoveSea

Thanks your excellent code, it's fabulous!
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
太感谢了,给分,结帖。
kyouken2007 2007-10-18
  • 打赏
  • 举报
回复
就是一层一层往上找。通过现在的button找到他所在的cell,然后再调用parent,就找他所在的行,然后取rowindex,
这个方法很常用的。
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
"乱翻书"给的代码正确,感谢,给分。
如果能给讲解一下index=((GridViewRow)(((Button)sender).Parent.Parent)).RowIndex; 这句,不胜感激。
kyouken2007 2007-10-18
  • 打赏
  • 举报
回复
DataKeys[index][0].


这个地方没有[0]吧,直接DataKeys[index]
kyouken2007 2007-10-18
  • 打赏
  • 举报
回复
    protected void Copy_Click(object sender, EventArgs e) 
{
int index=((GridViewRow)(((Button)sender).Parent.Parent)).RowIndex;

String value= GridView1.DataKeys[index][0].Value.ToString();
...
}
aihui109 2007-10-18
  • 打赏
  • 举报
回复
不是写在按钮的事件里,写在GridView_Edit……类似的按钮事件里。
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
忘记说了,我编辑的这个文件是个usercontrol,是.ascx, 不知和这个有关系没有。
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
在后台的代码〉
protected void Copy_Click(object sender, EventArgs e)
{
String value= GridView1.DataKeys[e.Row.RowIndex][0].Value.ToString();
...
}
我用的是 visual studio 2005, 当我打e.时,系统自动建议只有Equals,ToString等方法,我写入e.Row.RowIndex后,编译报措。
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
我在前台是把按钮定义在template里的〉
<asp:TemplateField>
<ItemTemplate>
<div><asp:Button ID="Copy" runat="server" Text="copy" OnClick="Copy_Click"/></div>
</ItemTemplate>
</asp:TemplateField>
kleindelphin 2007-10-18
  • 打赏
  • 举报
回复
to :demonnuclear

按照你的方法,不过编译时报错〉System.EventArgs 不包含对Row的定义。
需要在什么地方定义Row呢?
ltmltm123456 2007-10-18
  • 打赏
  • 举报
回复
按钮事件里添加
string str_dk= GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
sunlovesea 2007-10-18
  • 打赏
  • 举报
回复
1、在绑定时设置主键:
//设置主键;
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
2、获取键值:
GridView1.DataKeys[e.RowIndex].Value.ToString();
demonnuclear 2007-10-18
  • 打赏
  • 举报
回复
首先绑定DataKeyNames
GridView.DataKeyNames = new string[] { "字段名称" };
取值
string aaa= GridView.DataKeys[e.Row.RowIndex].Value.ToString();
w0007 2007-10-18
  • 打赏
  • 举报
回复
在设计GridView时,给它的DataKeyFields设置数据源字段,然后就可在ItemCommand事件中
获取该行的DataKey值

62,204

社区成员

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

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

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

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