您是否可以链接到其他页面的选项下拉框中的特定值?链接到选项下拉菜单
换句话说,假设我在第1页上,并且我想链接到第2页,该页面上有一个带有3个不同值的选项下拉框。比方说,默认情况下,当您转到第2页时,下拉选项框显示值1.
是否可以链接到第2页并在运行中更改该选项框的值?而当您单击第1页上的链接时,它将自动显示值3,而不是1在第2页上。
您是否可以链接到其他页面的选项下拉框中的特定值?链接到选项下拉菜单
换句话说,假设我在第1页上,并且我想链接到第2页,该页面上有一个带有3个不同值的选项下拉框。比方说,默认情况下,当您转到第2页时,下拉选项框显示值1.
是否可以链接到第2页并在运行中更改该选项框的值?而当您单击第1页上的链接时,它将自动显示值3,而不是1在第2页上。
这当然是可以的。你可以在查询字符串中传递一个标志。因此,在页面1上,您可以链接到page2,如“page2.aspx?option = 3”。然后,在第2页的PageLoad
方法中,只需从查询字符串(Request.QueryString["option"]
)中读取该值,并适当设置DropDownList
的选定项。
一个第1页你会...
<a href="page2.aspx?option=3">link to page 2</a>
在第2页的代码隐藏,基于铝的例子...
void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
int option;
if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer
ddlList.SelectedIndex = option;
}
}
}
乔恩·弗里兰的回答基本上是我会做的方式。您可能希望将代码设置为Page_Load函数内的codebehind类中的列表索引。
您也可以保存在ASP.Net会话中设置的选项的值,但如果您开始让用户在网站上跳动,则会变得有点棘手。他们可能会回到第2页,仍然会将会话变量设置为意外事件。另外,如果用户暂时处于非活动状态或者服务器重置,您可能会遇到会话被删除的问题。另一方面,如果你把它放在Session对象中,你可以在你的页面之间来回移动,并保留你需要的所有数据。
如果你想看到一个样本,你可以试试:
void Page_Load (object sender, EventArgs e) {
if (! Page.IsPostBack) {
ddlList.SelectedIndex = Request.QueryString["option"]
}
你想要把代码的IsPostBack段内,这样它将只运行在第一时间将用户定向到新的一页! 。
感谢Jon的回答。我在asp.net中有点新鲜感。你能给我一个你刚刚描述的代码样本吗? – arcadian 2009-05-18 04:12:48