【问题标题】:How to update query string and reload Page on DropDownList SelectedIndexChanged event?如何在 DropDownList SelectedIndexChanged 事件上更新查询字符串并重新加载页面?
【发布时间】:2014-12-07 14:44:10
【问题描述】:

有包含语言的下拉列表,每次从下拉列表中更改所选项目时如何重新加载页面?

  protected void DDLLanguages_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Request.RawUrl.Contains("Language") == false )
            {
                Response.Redirect(Request.RawUrl + "?Language=" + DDLLanguages.SelectedValue);
            }
            else
            {
             //i need to update the quesry string here 

            }

        }

【问题讨论】:

  • 尝试使用 DDLLanguages.SelectedItem.Text 或 DDLLanguages.SelectedValue.ToString()。

标签: c# asp.net drop-down-menu query-string


【解决方案1】:
 protected void DDLLanguages_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Request.RawUrl.Contains("Language") == false )
            {
                Response.Redirect(Request.RawUrl + "?Language=" + DDLLanguages.SelectedValue);
            }
            else
            {
             //i need to update the quesry string here 
   Response.Redirect(Request.Url.GetLeftPart(UriPartial.Path)+ "?Language=" + DDLLanguages.SelectedValue);

            }

    }

【讨论】:

    【解决方案2】:

    接受的答案会清除所有现有的查询字符串值。

    // parse url into UriBuilder //
    var uri = new UriBuilder(Request.RawUrl);
    
    // parse query part of url into a NameValueCollection //
    var query = HttpUtility.ParseQueryString(uri.Query);
    
    // update/create "Language" entry in the NameValueCollection //
    query["Language"] = DDLLanguages.SelectedValue;
    
    // put updated NameValueCollection back into uri querystring //
    uri.Query = query.ToString();
    
    // redirect page to updated uri //
    Response.Redirect(uri.ToString());
    

    【讨论】:

    • 如果"Language"参数不存在,这个会加吗?
    • 是的,如果不存在,它将添加密钥。查询字符串对象继承自具有此行为的 NameValueCollection。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多