我的查询字符串有问题。我有一个带有3个组合框的aspx站点。更改值时,查询字符串获取所选值。
但是当我更改值时,网址不会立即更新:
例如:
网页名称:test.aspx
Values combobox 1: Mo, Di, Mi
Values combobox 2: 1, 2, 3
Values combobox 3: A, B, C
现在我改变了:
Combobox 1 -> Mo -> URL still test.aspx (but value of combobox is Mo!)
Combobox 2 (first ist still Mo) -> 1 -> Url gets test.aspx?Tag=Mo
网址似乎更新了previuos值而不是实际值。
我在Page_LoadComplete
那么是否有意见加载实际查询字符串的页面?我想用wkhtmltopdf生成pdf页面但是当我接受输入url Request.url时,生成的pdf也不是最新的......
感谢并抱歉我的英语不好
更新
这是我更改查询字符串的时候。
protected void DD_Status_SelectedIndexChanged(object sender, EventArgs e)
{
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
Request.QueryString["Status"] = this.DD_Status.SelectedValue.ToString();
当我在Page_LoadComplete
上阅读查询字符串时,这是我 if (Request.QueryString["Status"] != null)
DD_Status.SelectedValue = Request.QueryString["Status"];
Postback
未在页面的任何位置使用
答案 0 :(得分:0)
即使尝试,这行代码是什么?:
Request.QueryString["Status"] = this.DD_Status.SelectedValue.ToString();
当在服务器上收到请求时,URL已经被解析。您无法在服务器上更改该URL,并希望以某种方式在客户端上更新它。简而言之,Request.QueryString
用于从获取值发布到服务器的URL,而不是将值保存到 URL。
如果要将值保存在稍后页面事件可以看到的位置,只需将其保存到类级变量即可。像这样:
public class SomePage
{
private string SelectedStatus { get; set; }
protected void DD_Status_SelectedIndexChanged(object sender, EventArgs e)
{
SelectedStatus = this.DD_Status.SelectedValue.ToString();
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
DD_Status.SelectedValue = SelectedStatus;
}
// other code in the code-behind class
}
虽然现在看着这个,但你仍然不清楚你想要做什么。逻辑上看起来你正试图将DD_Status.SelectedValue
设置为自己。你不需要这样做,它已经具有了它的价值。