3

私はウェブページを持っています:Menu.aspx、ここで私は関連性の次のコントロールを持っています:

  • いくつかの値を持つDropDownList
  • Edit.aspxというページにリダイレクトするハイパーリンク。

Edit.aspxページに、ユーザーをメニューページにリダイレクトするキャンセルボタンがあります。

ユーザーがハイパーリンクをクリックして[編集]ページに移動すると、DropDownListのインデックスがクエリ文字列に保存されます。Menu.aspxページに次のaspxコードがありますが、方法がわかりません。続行します

<asp:HyperLink
    ID="lnkEdit"
    NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + ...not sure... %>'
</asp:HyperLink>

<asp:DropDownList
    ID="myDropDown"
    ...some <asp:ListItems/>
</asp:DropDownList>

編集:ImがNavigateURLを使用する理由を明確にしました。私のクエリ文字列はすでにユーザーIDを決定するための評価を行っているためです。

4

3 に答える 3

4

LinkButtonサーバー側のOnClickイベントでコントロールを使用します。

<asp:LinkButton ID="lbtn1" runat="server" OnClick="lbtn1_Click" 
    CommandArgument='<%#Eval("UserID") %>' />

サーバー側の方法:

public void lbtn1_Click(object sender, EventArgs e)
{
    LinkButton lbtn = (LinkButton)sender;
    string userID = lbtn.CommandArgument;
    string dropDownValue = myDropDown.SelectedValue;
    string navigateUrl = string.Format("Edit.aspx?userid={0}&dropdown={1}", 
        userID, dropDownValue);
    Response.Redirect(navigateUrl);
}

編集: Royi Namir が以下で指摘しているように、JavaScript を使用できる場合は JavaScript を使用することをお勧めします。これにより、サーバーへの不要なラウンド トリップが作成されます。

于 2012-11-09T18:47:10.137 に答える
1

これが簡単な方法です。Sessionを使用することです

例:

Session["SessionName"] = idDropDownList;

別のページで、セッションのコンテンツのみにアクセスします

string idDropDownList = (string)Session["SessionName"];

お役に立てば幸いです。

于 2012-11-09T18:52:04.570 に答える
1

このようなものを試してください

<asp:HyperLink ID="lnkEdit"
    NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + 
    "&menuid=" + myDropDown.SelectedValue %>'> MyText </asp:HyperLink>

AutoPostBackドロップダウンでもtrueに設定します。ドロップダウンを変更するときはいつでも、新しく選択された値がハイパーリンクナビゲートURLにバインドされます。

于 2012-11-09T18:56:32.230 に答える