我在 .NET 中有一个使用 ASP 和 C# 的 Web 表单。此表单有一个DropDownList控件,其AutoPostBack属性设置为True。
当用户从DropDownList中选择一个项目时,会显示表单上的一些数据。
现在,我希望用户能够通过复制带有 QueryString 的 URL 来共享他或她的数据,例如http://www.site.com?ProdID=1234
.
我已经做了以下尝试来实现这一点:
protected void Page_Load(object sender, EventArgs e)
{
// check if the URL has a QueryString item if yes the use it.
if (!String.IsNullOrEmpty(Request.QueryString["ProdID"]))
{
ddlProduct.SelectedIndex = ddlProduct.Items.IndexOf(ddlProduct.Items.FindByValue(Request.QueryString["ProdID"]));
}
}
这段代码的问题在于,当用户从 DropDownList 中选择不同的项目时,他或她选择的项目会被 Page_Load() 覆盖,因为我们现在在 URL 上有一个 QueryString。(我构建 QueryString,然后使用 Redirect() 方法到事件的同一页面)
所以我的问题是:当用户从 DropDownList 更改所选项目并在表单上显示所选项目的正确数据时,是否可以随时更改 URL 的查询字符串?
我觉得这就像鸡或蛋的问题。
谢谢你。