您可以链接到另一个页面的选项下拉框中的特定值吗?
换句话说,假设我在第 1 页,我想将链接锚定到第 2 页,该链接有一个选项下拉框,其中包含 3 个不同的值。假设默认情况下,当您转到第 2 页时,下拉选项框显示值 1。
是否可以链接到第 2 页并即时更改该选项框的值?而当您单击第 1 页上的链接时,它将自动显示值 3 而不是第 2 页上的 1。
您可以链接到另一个页面的选项下拉框中的特定值吗?
换句话说,假设我在第 1 页,我想将链接锚定到第 2 页,该链接有一个选项下拉框,其中包含 3 个不同的值。假设默认情况下,当您转到第 2 页时,下拉选项框显示值 1。
是否可以链接到第 2 页并即时更改该选项框的值?而当您单击第 1 页上的链接时,它将自动显示值 3 而不是第 2 页上的 1。
这当然是可能的。您可以在查询字符串中传递一个标志。因此,在 page1 上,您有一个指向 page2 的链接,例如“page2.aspx?option=3”。然后,在 page2 的PageLoad
方法中,只需从查询字符串 ( ) 中读取该值Request.QueryString["option"]
并适当地设置所选项目DropDownList
。
一页1你会...
<a href="page2.aspx?option=3">link to page 2</a>
在 page2 的代码隐藏中,基于 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;
}
}
}
乔恩弗里兰的回答基本上是我会这样做的方式。您可能希望将用于设置列表索引的代码放在 Page_Load 函数内的代码隐藏类中。
您还可以保存在 ASP.Net 会话中设置的选项的值,但是如果您开始让用户在站点中跳来跳去,这会变得有点棘手。他们可能会回到第 2 页,并且仍然将会话变量设置为意外的值。此外,如果用户有一段时间不活动或服务器被重置,您可能会遇到会话被删除的问题。从好的方面来说,如果你把它放在 Session 对象中,你可以在你的页面之间来回移动,并把你需要的所有数据放在手边。
如果您想查看示例,请尝试以下操作:
void Page_Load (object sender, EventArgs e) {
if (! Page.IsPostBack) {
ddlList.SelectedIndex = Request.QueryString["option"]
}
您希望将代码放在 !IsPostBack 部分中,以便它仅在用户第一次被定向到页面时运行。