【问题标题】:Check checkboxlist Items as value in querystring in asp.net检查 checkboxlist 项目作为 asp.net 中查询字符串中的值
【发布时间】:2017-06-07 09:03:18
【问题描述】:

如果在 QueryString 中找到值,我想将复选框列表项标记为选中。例如

www.abcd.com/pproducts.aspx?price=1001-2000|2001-5000|5001-10000。

在这个网址中,我过滤了 3 种不同价格范围的产品。现在我有复选框列表,其中包含如下价格

1001-2000

2001-5000

5001-10000

10000 以上

所以现在我想它应该被选中 1001-2000、2001-5000、5001-10000

从下面的代码我正在重定向页面并制作网址

private void priceRange_SelectedIndexChanged(object sender, EventArgs e)
{
    string selectedPriceRange = priceRange.SelectedValue.ToString;
    foreach (ListItem chk in priceRange.Items) {
        if (selectedPriceRange.Contains(chk.Value)) {
            chk.Selected = true;
        }
    }

    Response.Redirect((Request.Url.AbsoluteUri) + "?price=" + selectedPriceRange);
}

【问题讨论】:

  • 您遇到了什么问题?
  • @John 我不明白如何检查查询字符串值中存在的项目。

标签: c# asp.net


【解决方案1】:
string price = Request.QueryString["price"];                           
string[] priceList = price.Split('|');                                  
foreach (string p in priceList)                                               
{                                                                            
    if (chkList.Items.FindByText(p) != null)                                  
    {                                      
          chkList.Items.FindByText(p).Selected = true;                        
    }                                                                           
}                                                                       

以上代码将根据查询字符串中传递的值选择每个复选框。

【讨论】:

  • 因此这是正确的解决方案,但也有一些缺点。你能解决我的这个问题吗?根据查询字符串复选框项目被完美选中,但假设如果我取消选中特定项目,那么它不会被取消选中,因为 pageLoad 事件首先执行并且在加载它时再次从 url 获取该查询字符串并再次选择项目。如何摆脱这种情况?看到这个链接我在这里发布了问题stackoverflow.com/questions/44416897/…
猜你喜欢
  • 1970-01-01
  • 2011-10-02
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多