您可以从其他页面的选项下拉框中链接到特定值吗?
换句话说,让我说我在第1页,我想锚定链接到第2页,其中有一个选项下拉框,其中包含3个不同的值。我们默认情况下,当您转到第2页时,下拉选项框显示值1.
是否可以链接到第2页并动态更改该选项框的值?而当您单击第1页上的链接时,它将自动显示值3而不是第2页上的1。
答案 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)
您还可以保存在ASP.Net会话中设置的选项的值,但如果您开始让用户在网站上反弹,则会变得有点棘手。他们可能会回到第2页,但仍然将会话变量设置为意外。此外,如果用户暂时处于非活动状态或服务器已重置,则可能会遇到问题,因为会话被删除。从好的方面来说,如果你把它放在Session对象中,你可以在你的页面之间来回移动,并保留你需要的所有数据。
如果您想查看示例,请尝试以下操作:
void Page_Load (object sender, EventArgs e) {
if (! Page.IsPostBack) {
ddlList.SelectedIndex = Request.QueryString["option"]
}
您希望将代码放在!IsPostBack部分中,以便它仅在用户第一次定向到页面时运行。