1

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

4

1 に答える 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"];
于 2012-04-23T16:41:57.997 に答える