2015-02-05 56 views
0

我正在開發一個基於Web表單的Web應用程序。它使用一些DropDownList asp控件。這是我已經附上了默認爲空值--- seleziona控制---Force DropDown list PageLoad的SelectMethod

   <asp:DropDownList 
        ID="dropQuestionari" 
        runat="server" 
        SelectMethod="GetQuestionari" 
        AppendDataBoundItems="true" 
        ItemType="Models.Questionario" 
        DataTextField="Questionariointestazione" 
        DataValueField="idQuestionario"> 
        <asp:ListItem Text="--- seleziona ---" Value="" Selected="true"></asp:ListItem> 
       </asp:DropDownList> 

控制使用SelectMethod財產與GetQuestionari()方法檢索填充列表所需的所有物品。

它工作正常,但我需要檢查下拉列表是否爲空(不包括默認項目),如果是,則更改默認對象文本。我想是這樣的(在後面的代碼):

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     //... 

     if (dropQuestionari.Items.Count == 1) 
     { 
      dropQuestionari.Items[0].Text = "Nessun questionario per l'utente corrente"; 
      this.confirmButton.Enabled = false; 
     } 
    } 
} 

看來這個名單不是在頁面加載人口和dropQuestionari.Items.Count總是返回1(這顯然只計算默認項)。我該如何強制將列表填充到PageLoad中?

回答

0

當頁面不是回傳時,表示您是在首次加載頁面時檢查計數。如果這是第一次,DDL將不會被填充。

+0

即使沒有'if'條件並且在控件上設置'AutoPostBack =「true」'屬性,它仍然具有相同的行爲。 – 2015-02-05 20:19:53

+0

您是否試圖在初次訪問時檢查控件?或者這是在後續回發? – 2015-02-06 16:55:41