2011-10-11 73 views
1

我正在中继器中显示账户对象列表。每个对象都包含三个字段,分别是studentID,studentName和studentAge。我用link button包装了它。结果,显示的每个单独项目都是可点击的。我还为链接按钮添加了点击处理程序。问题是我怎么知道哪个学生被点击?因为最初我想导航到下一页并显示特定学生的详细信息。一旦我知道哪个学生被点击了,我就可以将他的详细信息存储在会话对象中,然后导航到新页面并将其恢复。包含LinkBut​​ton的ASP .NET转发器控件

感谢您的帮助。

回答

4

在你的情况,这将是更好地使用正常的超链接,通过ID作为查询字符串,并有新的页面获取详细信息。

<asp:HyperLink runat="server" 
       NavigateUrl='<%# Eval("studentID", "StudentDetails.aspx?id={0}") %>' 
       Text="Details" /> 

更新:

要获得studentID在同一页上,使用ItemCommand事件,而不是和有LinkButton如下:

<asp:LinkButton runat="server" 
       CommandName="StudentDetails" 
       CommandArgument='<%# Eval("studentID") %>' /> 

的studentID将被存储到CommandArgument属性,该值将被传递给ItemCommand事件处理程序。

+0

不,我不能像下一页那样使用超链接我无权访问帐户对象列表。我需要在该页面上提取对象,然后通过会话变量传递给下一页。 – VVV

+0

@VVV,我明白了。我以为你打算从数据库中加载记录。 – Amry

+0

@VVV,更新了答案以符合您的要求。 :) – Amry

1
<asp:HyperLink ID="HyperLink1" runat="server" 
       NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"studentID", "StudentDetails.aspx?Id={0}") %>' 
       Text="Details" />