2015-06-25 19 views
0

我想顯示一個DropdownList,但它還沒有工作。 這是我的asp.net代碼:爲什麼我的DropDownList無法正常工作?

<asp:Panel ID="pnlChannel" runat="server"> 
<asp:SqlDataSource ID="sdsChannel" runat="server"></asp:SqlDataSource> 
<asp:DropDownList ID="ddlChannel" runat="server"> 
    <asp:ListItem id="limDefault" runat="server"></asp:ListItem> 
    </asp:DropDownList> 
</asp:Panel> 

然後這是我的代碼隱藏:

public Panel GetDropDownList() 
{ 
    // Create drop down list and data source 
    Panel pnlChannel = new Panel(); 
    DropDownList ddlChannel = new DropDownList(); 
    ListItem limDefault = new ListItem(); 
    SqlDataSource sdsChannel = new SqlDataSource(); 

    // Configure data source 
    sdsChannel.ConnectionString = ConfigurationManager.ConnectionStrings["CR_SQL"].ConnectionString; 
    sdsChannel.SelectCommand = "SELECT * FROM TABLE"; 
    sdsChannel.ID = "sdsChannel"; 

    // Configure drop down list 
    ddlChannel.DataTextField = "Channel"; 
    ddlChannel.DataValueField = "Channel"; 
    ddlChannel.AppendDataBoundItems = true; 
    ddlChannel.DataSourceID = "sdsChannel"; 



    // Configure default list item 
    limDefault.Selected = true; 
    limDefault.Text = "All"; 
    limDefault.Value = "-1"; 

    // Add controls to static panel in footer 
    ddlChannel.Items.Add(limDefault); 
    pnlChannel.Controls.Add(ddlChannel); 
    pnlChannel.Controls.Add(sdsChannel); 
    return pnlChannel; 
} 

我錯過了什麼? 所以我認爲ListItem不工作,因爲有一個DropDownList,但我看不到任何列表下拉。

+1

爲什麼在代碼後面再次創建所有控件?您已經在aspx頁面中進行了控制。 Line Panel pnlChannel = new Panel();正在創建新面板。您將其他控件添加到面板bu創建新控件。 –

+0

所以我可以刪除它們? –

+0

當你調用這個函數public Panel GetDropDownList()'?你用什麼技術? –

回答

0

您還沒有設置Text屬性ListItem。同時從.cs文件中刪除用於創建控件的代碼,因爲這會複製控件。

<asp:DropDownList ID="ddlChannel" runat="server"> 
    <asp:ListItem id="limDefault" runat="server" Text="SomeText" Value="SomeValue"></asp:ListItem> 
    </asp:DropDownList> 
+0

但如果我這樣做,我只會得到「SomeText」下拉菜單,但它應該從數據庫中寫入值。 –

相關問題