2012-03-26 60 views
-2

我的页面上有两个下拉列表ddlMin和ddlMax。dropdownlist取其他值

在页面加载我有它选择一个request.querystring的值。在调试时,它会选择所选的值,直到它到达下一行,然后再选择它的所选值。

http://localhost:37661/Default.aspx?search=&min=450000

ddlMin.SelectedValue = !FpsFunctions.IsNothing(Request.QueryString["min"]) 
    ? Request.QueryString["min"] 
    : "0"; <-- at this point it's 450000 

ddlMax.SelectedValue = !FpsFunctions.IsNothing(Request.QueryString["max"]) 
    ? Request.QueryString["max"] 
    : "0"; <-- after this ddlMin.SelecgtedValue changes back to 0 

我已检查.cs.designer,以确保它没有继承什么愚蠢的,但是这一切似乎是正确的。

提前帮忙欢呼。

+0

公共静态布尔IsNothing(字符串stringToTest) { 回报string.IsNullOrEmpty(stringToTest); } – 2012-03-26 12:57:36

+0

你能提供一些你的代码吗?而到你的本地主机的链接不会帮助我们。 – 2012-03-26 12:58:31

+0

localhost链接只是为了显示我从中拉出的查询字符串。不知道是否需要更多的代码,因为在调试ddlMin时,直到下一行为止,然后丢失它。你还需要看什么其他的代码? – 2012-03-26 13:01:23

回答

0

当创建我的下拉列表我创建我的项目,像这样

  foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(',')) 
      { 
       items = item.ToLower() == "any" 
          ? new ListItem(item, "0") 
          : item.Contains("+") 
            ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))), 
               "999999999") 
            : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item); 
       ddlMin.Items.Add(items); 
       ddlMax.Items.Add(items); 
      } 

这意味着什么,虽然我不清楚为什么它有这么多的效果,是该列表项正在连接到两个dropdownlists作为一个单独的项目。因此,即使ddlMin获得了正确的值并在ddlMax返回0时选择它,它也会在两者中选择相同的listitem ...为了纠正这个问题,您需要将添加到ddlMin和ddlMax中。 。

  foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(',')) 
      { 
       items = item.ToLower() == "any" 
          ? new ListItem(item, "0") 
          : item.Contains("+") 
            ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))), 
               "999999999") 
            : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item); 
       ddlMin.Items.Add(items); 
      } 


      foreach (string item in ConfigurationManager.AppSettings["Budget"].Split(',')) 
      { 
       items = item.ToLower() == "any" 
          ? new ListItem(item, "0") 
          : item.Contains("+") 
            ? new ListItem(String.Format("{0:0,0}+", Convert.ToInt32(item.Replace("+", ""))), 
               "999999999") 
            : new ListItem(String.Format("{0:0,0}", Convert.ToInt32(item)), item); 

       ddlMax.Items.Add(items); 
      } 

麻烦,但不一定显然