2012-03-26 26 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); 
      } 

麻煩,但不一定顯然