我有一个网页: Menu.aspx ,其中我有以下相关控件:
在我的 Edit.aspx 页面中,我有一个取消按钮,可将用户重定向回菜单页面
我想要做的是当我的用户点击超链接转到“编辑”页面时,DropDownList的索引会保留在查询字符串中 Menu.aspx < / strong>页面我有以下aspx代码,但我不知道如何继续
<asp:HyperLink
ID="lnkEdit"
NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + ...not sure... %>'
</asp:HyperLink>
<asp:DropDownList
ID="myDropDown"
...some <asp:ListItems/>
</asp:DropDownList>
编辑:澄清了为什么我使用NavigateURL。因为我的查询字符串已经使用Eval来确定用户ID。
答案 0 :(得分: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是一个更好的选择。这会造成不必要的往返服务器。
答案 1 :(得分:1)
这是一个简单的方法是使用Session
示例:强>
Session["SessionName"] = idDropDownList;
在另一个页面上,只访问会话的内容
string idDropDownList = (string)Session["SessionName"];
我希望我能帮忙。
答案 2 :(得分:1)
尝试这样的事情
<asp:HyperLink ID="lnkEdit"
NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") +
"&menuid=" + myDropDown.SelectedValue %>'> MyText </asp:HyperLink>
并在下拉列表中将AutoPostBack
设置为true。每当您更改下拉列表时,新选定的值将与超链接导航URL绑定。