アイテムのリスト (ハイパーリンク) は、クエリによって取得されたリストビューに表示されます。クリックすると、そのアイテムのテキスト(ハイパーリンク)である名前を使用して、そのアイテムのデータを取得する必要がある別のページにリダイレクトされます。クリックされた項目のテキスト プロパティ (名前) にアクセスするにはどうすればよいですか?
1641 次
1 に答える
3
実際に別のページにリダイレクトするハイパーリンクをクリックしている場合、その情報を取得することはできません。
これを行う唯一の方法は、必要な情報をクエリ文字列に含め、次のページでクエリ文字列を解析することです。
ただし、フォームを別のページに投稿していて、ハイパーリンクが実際には入力である場合は、投稿データで情報を利用できます。
ハイパーリンクが実際にサーバー コントロールである場合、多くの可能性があります。
いくつかのコードを見ると役立つかもしれません。
OK、これがあなたのコードなら:
<td>
<asp:Hyperlink ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' NavigateUrl="~/anotherpage.aspx"/>
</td>
できることがいくつかあります。まず、 を変更asp:Hyperlink
しasp: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 に答える