2015-06-25 43 views
-3

所以我試圖做一個DropDownList。當我在aspx文件中執行它時,它正在工作,但它在代碼隱藏內部不起作用。DropDownList不能與代碼隱藏C#

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

    // Configure data source 
    sdsChannel.ConnectionString = ConfigurationManager.ConnectionStrings["Monitor_SQL"].ConnectionString; 
    sdsChannel.SelectCommand = "SELECT * From TABlE"; 


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



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

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

爲什麼沒有它的工作:

<asp:Panel ID="pnlChannel" runat="server"> 
<asp:SqlDataSource ID="sdsChannel" runat="server" ConnectionString="<%$ ConnectionStrings:Monitor_SQL %>" SelectCommand="SELECT * FROM TABLE"></asp:SqlDataSource> 
<asp:DropDownList ID="ddlChannel" runat="server" DataSourceID="sdsChannel" AutoPostBack="True" DataTextField="Kanal"> 
</asp:DropDownList> 
</asp:Panel> 

然後我在C#代碼隱藏嘗試過嗎? +我不會用這兩個,我想使用基於您的評論,這些意見

+0

定義「不工作」。它在做什麼?你期望它做什麼?當你在調試器中通過時,哪裏出錯? – David

+0

爲什麼你在你的代碼中創建一個新的下拉列表?你可以使用現有的通過使用ddlChannel,而不是將其設置爲一個新的DropdownList ... –

+0

@David如果如果它在代碼隱藏中有一個DropDownList但列表中沒有任何內容。所以我認爲itemlist是錯誤的,但我找不到任何錯誤。 –

回答

0

之一:

如果,如果這樣做的代碼隱藏有一個DropDownList但名單裏面沒有

你永遠不綁定的控件的數據:

ddlChannel.DataBind(); 
+0

所以如果我這樣做,它仍然沒有工作。我是否必須爲前者寫信? aspx文件中的asp:面板,還是應該工作,如果我只寫代碼隱藏文件中的代碼? –

+0

@fusionchart_help:您是否曾將「Panel」添加到頁面?發佈的代碼不包括這一點。您可能還需要以某種方式「綁定」SqlDataSource,我沒有真正使用聲明性數據源,所以我不確定。 – David

+0

我試圖綁定它,但它仍然沒有工作,錯誤表示它沒有連接到該網站。 .Controls不起作用? –