• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

单击GridView的TemplateField中的Linkbutton如何获取某一个字段值

谁动了我的心弦 2014-01-14 10:21:43
我有一个GridView,里面有一个LinkButton,我想单击这个LinkButton的时候获取同属该条记录中的另一个值,这个值我没有绑定在ItemTemaplate中。
GridView的数据源是Sqldatasource,其查询语句是
SelectCommand="Select ID,Name,Sex,Hoppy from Info"

GrivView的TemalateField如下:

<Columns>
<asp:TemplateField>
<ItemTemplate>
<table cellspacing="0" width="100%" border="0" cellpadding="0" runat="server">
<tr>
<td>
<asp:Label ID="Label1" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Nick") %>'></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Sex") %>'>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label3" runat="server" Width="100%" Text='<%# DataBinder.Eval(Container, "DataItem.Hoppy") %>'>|
<asp:linkbutton>获取ID</asp:linkbutton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>

我想把ID存到一个Session中,然后全局都可是使用。以上是我的例子是我简化过后的,我想要的就是当点击GridView中的那个linkbutton后获取从被点击的那一条记录中的ID值。谢谢大家!
...全文
155 点赞 收藏 11
写回复
11 条回复
谁动了我的心弦 2014年01月15日
引用 9 楼 qq931121347 的回复:
<%# getBmmc(Eval("Bm").ToString()) %> 用隐藏域显示ID 然后通过JS给单击按钮
这个方法之前也有想到过,不过我还是想知道我帖子中的问题能不能通过帖子中所要求的方法去解决,当个学生能多学点就多学点...
回复 点赞
淡淡的活着 2014年01月15日
<%# getBmmc(Eval("Bm").ToString()) %> 用隐藏域显示ID 然后通过JS给单击按钮
回复 点赞
谁动了我的心弦 2014年01月15日
引用 4 楼 u013471741 的回复:
int state = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "id"));
你写的这个代码是写在哪个事件里面呢?
回复 点赞
md5e 2014年01月15日
我这里用两个Repeater 嵌套做说明 DataRowView row = e.Item.DataItem as DataRowView;//将源数据转成DataRowView,和DataRow的用法没什么不同 rp_nav_sub.DataSource = getClassList(row["classID"].ToString(), false, true);//row["classID"].ToString()是主表里的一个字段,不一定要在Repeater出现,只要求你的源数据有这个字段就可以了
回复 点赞
md5e 2014年01月15日
protected void rp_kssz_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView row = e.Item.DataItem as DataRowView; Repeater rp_nav_sub = e.Item.FindControl("rp_kssz_sub") as Repeater; rp_nav_sub.DataSource = getClassList(row["classID"].ToString(), false, true); rp_nav_sub.DataBind(); } }
引用 5 楼 arthuskingofc 的回复:
[quote=引用 2 楼 liuchaolin 的回复:] DataRowView row = e.Item.DataItem as DataRowView;
我是个学生,我刚接触ASP.NET不久,不太看得懂你要表达一个什么意思,能多写一点代码或者文字性注释吗[/quote]
回复 点赞
谁动了我的心弦 2014年01月15日
引用 2 楼 liuchaolin 的回复:
DataRowView row = e.Item.DataItem as DataRowView;
我是个学生,我刚接触ASP.NET不久,不太看得懂你要表达一个什么意思,能多写一点代码或者文字性注释吗
回复 点赞
ran丶 2014年01月15日
int state = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "id"));
回复 点赞
ran丶 2014年01月15日
System.Web.UI.HtmlControls.HtmlInputCheckBox chk = row.Cells[0].FindControl("chkItem") as System.Web.UI.HtmlControls.HtmlInputCheckBox;
回复 点赞
md5e 2014年01月15日
DataRowView row = e.Item.DataItem as DataRowView;
回复 点赞
淡淡的活着 2014年01月15日
引用 10 楼 arthuskingofc 的回复:
[quote=引用 9 楼 qq931121347 的回复:] <%# getBmmc(Eval("Bm").ToString()) %> 用隐藏域显示ID 然后通过JS给单击按钮
这个方法之前也有想到过,不过我还是想知道我帖子中的问题能不能通过帖子中所要求的方法去解决,当个学生能多学点就多学点...[/quote]简单方便好点··反正能用就行 效率也不是问题·代码也不多
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告