2011-07-08 42 views
1

我有2個下拉列表,我需要一個默認值顯示爲第一個項目,但隨後的ddlSize沒有得到默認值之一,我也試圖建立2個獨立的功能TypeColor & TypeSize但它沒有幫助,有什麼建議嗎?謝謝:已經2下拉列表問題

&nbsp;<asp:DropDownList ID="ddlColor" OnDataBinding='<%# TypeSelection((int)Eval("ProductID")) %>' runat="server" Width="109"> 
    <asp:ListItem Value="Select Color&nbsp;&nbsp;"></asp:ListItem> 
    </asp:DropDownList> 
    <br /> 
    &nbsp;<asp:DropDownList ID="ddlSize" OnDataBinding='<%# TypeSelection((int)Eval("ProductID")) %>' runat="server" Width="109"> 
    <asp:ListItem Value="Select Size&nbsp;&nbsp;"></asp:ListItem> 
    </asp:DropDownList> 


    protected string TypeSelection(int pID) 
     { 
      DropDownList ddlColor = (DropDownList)FormView_Product.Row.Cells[0].FindControl("ddlColor"); 
      DropDownList ddlSize = (DropDownList)FormView_Product.Row.Cells[0].FindControl("ddlSize"); 
      CommerceEntities db = new CommerceEntities(); 

      ddlColor.DataSource = from p in db.ProductTypes 
           where p.ProductID == pID 
            orderby p.Color 
           select new { p.ProductID, p.Color }; 
      ddlColor.DataTextField = "Color"; 
      ddlColor.Items.Insert(0, new ListItem("Select Color", "NA")); //----->Default value 

      ddlSize.DataSource = from p in db.ProductTypes 
           where p.ProductID == pID 
           orderby p.Size descending 
           select new { p.ProductID, p.Size }; 
      ddlSize.DataTextField = "Size"; 
      ddlSize.Items.Insert(0, new ListItem("Select Size", "NA")); //----->Default value(can't get this into the DDL.) 

      return null; 
     } 

回答

2

你可以這樣做。

<asp:DropDownList runat="server" ID="ddl" AppendDataBoundItems="true"> 
     <asp:ListItem Value="0" Text="Default Value"></asp:ListItem> 
</asp:DropDownList> 

這樣,綁定後默認項目會保留在那裏。

+0

我認爲這是一個最好的方法。 – Tocco

0

嘗試在插入默認項目之前調用ddlSize.DataBind()和ddlColor.DataBind()。插入默認值之前

ddlColor.DataSource = ... 
ddlColor.DataTextField = "...."; 
ddlColor.DataBind(); 
ddlColor.Items.Insert(0, new ListItem("Select Color", "NA")); 

等等......

1

呼叫ddlSize.DataBind();。例如

ddlSize.DataTextField = "Size"; 
ddlSize.DataBind(); // Add this 
ddlSize.Items.Insert(0, new ListItem("Select Size", "NA")); 

的第二件事是不相關的問題,但我要告訴你,你不需要定義你的方法return type as String.既然你是不是從這個方法返回的任何值,只需使用此法return type Void