2012-04-23 14 views
1

項目(ハイパーリンク)のリストは、クエリによって取得されたリストビューに表示されます。そして、クリックすると、別のページにリダイレクトされます。そのページの名前は、その項目(ハイパーリンク)のテキストである名前を使用してその項目のデータを取得する必要があります。クリックされたアイテムのテキストプロパティ(名前)にはどうやってアクセスしますか?ハイパーリンクのテキストプロパティを取得することはリストビューでクリックされましたか?

答えて

3

あなたは確かには別のページにリダイレクトするハイパーリンクをクリックしている場合は、その情報を取得することはできません。

これを実行する唯一の方法は、必要な情報をクエリ文字列に組み込み、クエリ文字列を次のページで解析することです。

フォームを別のページに転記し、ハイパーリンクが実際に入力されている場合、あなたの情報は投稿データで利用可能になります。

ハイパーリンクが実際にサーバーコントロールである場合、多くの可能性があります。

いくつかのコードが表示される場合があります。

OK、これはあなたのコードであれば、:

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

あなたができることがいくつかあります。今

<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?"); 
    } 

すると、中にまず、あなたは、クリックイベントを追加し、NavigateUrlプロパティを削除asp:LinkButtonにごasp:Hyperlinkを変更することができますPage_Loadあなたのランディングページのイベントは、これを行うことができます:

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

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

どのコードを見たいですか?これまではテキストがないのでこのタスクのコードは書かれていませんでしたが、SqlDataSourceを使用して、リストビュー内のデータを取得することができます。そして私は明示的にその中の項目のラベルプロパティをハイパーリンクに変換しました。 <:ハイパーリンクID = "NameLabel" にrunat = "サーバー" テキスト= '<%#エバール( "名前")%>' NavigateUrl = "〜/ anotherpage.aspx"/ASP> –

+0

そして、はい、この ​​ のように私は次のページに情報を解析する必要がありますが、そのハイパーリンクのテキスト以来どのくらい情報を取得していますか? –

+0

関連する問題