2012-04-23 90 views
1

項目列表(超鏈接)顯示在查詢檢索的列表視圖中。在點擊時,它會重定向到另一個頁面,我需要使用它的名稱來獲取該項目的數據,這是該項目(超鏈接)的文本。我如何訪問被點擊的項目的文本屬性(名稱)?在列表視圖中點擊超鏈接的文本屬性?

回答

3

如果確實單擊超鏈接其中重定向到另一頁,則無法獲取該信息。

要做到這一點,唯一的方法是在查詢字符串中包含所需的信息,並在下一頁解析查詢字符串。

但是,如果你是張貼表單到另一頁,而你的超鏈接實際上是一個輸入,你的信息將在後期數據中可用。

如果您的超鏈接實際上是服務器控件,則有很多可能性。

它可能有助於看到一些代碼。

OK,如果這是你的代碼:

<td> 
    <asp:Hyperlink ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' NavigateUrl="~/anotherpage.aspx"/> 
</td> 

有一些事情可以做。首先,你可以改變你asp:Hyperlinkasp:LinkButton添加一個點擊事件並刪除NavigateUrl屬性:

<td> 
    <asp:LinkButton ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' OnClick="NameLabel_Click"/> 
</td>  

現在,使用事件處理程序做你需要的東西:

//Use querystring 
    protected void NameLabel_Click(object sender, EventArgs e) 
    { 
     var link = sender as LinkButton; 
     Response.Redirect(String.Format("anotherpage.aspx?name={0}", link.Text)); 
    } 

    //Use session 
    protected void NameLabel_Click(object sender, EventArgs e) 
    { 
     var link = sender as LinkButton; 
     Session["name"] = link.Text; 
     Response.Redirect("anotherpage.aspx?"); 
    } 

然後,在Page_Load你的着陸頁事件,你可以這樣做:

//Session 
var name = Session["name"]; 

//Querystring 
var name = Request.QueryString["name"]; 
+0

你想看什麼代碼?到目前爲止,我還沒有編寫這個任務的代碼,因爲我沒有文本,我可以通過SqlDataSource向你展示檢索列表視圖中的數據的代碼。我明確地將其中的項目的標籤屬性轉換爲超鏈接。這樣 ​​ 的 2012-04-23 16:56:11

+0

是的我需要將信息解析到下一個頁面,但是我怎樣才能從那個超鏈接的文本中得到這些信息? – 2012-04-23 16:56:51

+0

嘗試像 2012-04-23 17:05:32