链接到选项下拉列表

时间:2009-05-18 04:00:04

标签: asp.net javascript ajax vbscript option-strict

您可以从其他页面的选项下拉框中链接到特定值吗?

换句话说,让我说我在第1页,我想锚定链接到第2页,其中有一个选项下拉框,其中包含3个不同的值。我们默认情况下,当您转到第2页时,下拉选项框显示值1.

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

2 个答案:

答案 0 :(得分:1)

这当然是可能的。您可以在查询字符串中传递一个标志。因此,在第1页上,您有一个指向page2的链接,例如“page2.aspx?option = 3”。然后,在page2的PageLoad方法中,只需从查询字符串(Request.QueryString["option"])中读取该值,并相应地设置DropDownList的所选项。

你会有一个页面1 ...

<a href="page2.aspx?option=3">link to page 2</a>

在第2页的代码隐藏中,基于Al的例子......

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;
      }
   }
}

答案 1 :(得分:0)

Jon Freeland的回答基本上就是我这样做的方式。您可能希望将代码放在Page_Load函数内的codebehind类中设置列表索引。

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

如果您想查看示例,请尝试以下操作:


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

您希望将代码放在!IsPostBack部分中,以便它仅在用户第一次定向到页面时运行。