[英]Problems with request.querystring
查询字符串出现问题。 我有一个带3个组合框的aspx网站。 更改值时,查询字符串将获得所选值。
但是,当我更改值时,URL不会立即更新:
例如:
页面名称: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
似乎url使用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
这行代码甚至试图做什么?
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
设置为本身。 您不需要这样做,它已经具有它所具有的价值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.