2011-10-11 64 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" />