我有一个使用ASP和C#编写的.NET Web表单。这个表单有一个DropDownList控件,它的AutoPostBack属性设置为True。
当用户从DropDownList中选择一个项目时,表单上显示一些数据。
现在,我希望用户只需复制带有查询字符串的URL(如http://www.site.com?ProdID=1234)即可分享他或她的数据。
为了实现这个目标,我已经做了以下工作:
这段代码的问题在于,当用户从下拉列表中选择其他项时,他或她选择的项目会被页面加载(Page_Load())覆盖,因为现在URL上有一个QueryString。(我建立了QueryString,然后在事件(Event)上使用Redirect()方法重定向到同一页面)
所以我的问题是:是否可能在用户更改下拉列表中选择的项时动态更改URL的查询字符串,并为所选项目在表单上显示正确的数据?
我有这样的感觉,这就像鸡和蛋的问题。
谢谢。
当用户从DropDownList中选择一个项目时,表单上显示一些数据。
现在,我希望用户只需复制带有查询字符串的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"]));
}
}
这段代码的问题在于,当用户从下拉列表中选择其他项时,他或她选择的项目会被页面加载(Page_Load())覆盖,因为现在URL上有一个QueryString。(我建立了QueryString,然后在事件(Event)上使用Redirect()方法重定向到同一页面)
所以我的问题是:是否可能在用户更改下拉列表中选择的项时动态更改URL的查询字符串,并为所选项目在表单上显示正确的数据?
我有这样的感觉,这就像鸡和蛋的问题。
谢谢。
if(!Page.IsPostBack && !String.IsNullOrEmpty(Request.QueryString["ProdID"]))
- asawyer