2009-05-18 161 views
0

您是否可以链接到其他页面的选项下拉框中的特定值?链接到选项下拉菜单

换句话说,假设我在第1页上,并且我想链接到第2页,该页面上有一个带有3个不同值的选项下拉框。比方说,默认情况下,当您转到第2页时,下拉选项框显示值1.

是否可以链接到第2页并在运行中更改该选项框的值?而当您单击第1页上的链接时,它将自动显示值3,而不是1在第2页上。

回答

1

这当然是可以的。你可以在查询字符串中传递一个标志。因此,在页面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; 
     } 
    } 
} 
+0

感谢Jon的回答。我在asp.net中有点新鲜感。你能给我一个你刚刚描述的代码样本吗? – arcadian 2009-05-18 04:12:48

0

乔恩·弗里兰的回答基本上是我会做的方式。您可能希望将代码设置为Page_Load函数内的codebehind类中的列表索引。

您也可以保存在ASP.Net会话中设置的选项的值,但如果您开始让用户在网站上跳动,则会变得有点棘手。他们可能会回到第2页,仍然会将会话变量设置为意外事件。另外,如果用户暂时处于非活动状态或者服务器重置,您可能会遇到会话被删除的问题。另一方面,如果你把它放在Session对象中,你可以在你的页面之间来回移动,并保留你需要的所有数据。

如果你想看到一个样本,你可以试试:


void Page_Load (object sender, EventArgs e) { 
    if (! Page.IsPostBack) { 
    ddlList.SelectedIndex = Request.QueryString["option"] 
    } 

你想要把代码的IsPostBack段内,这样它将只运行在第一时间将用户定向到新的一页! 。