2013-05-29 78 views
3

我想向我的dropdownlistbox中的1添加1個默認值。將默認值添加到下拉列表中

我有2;

  1. DDLocation
  2. DDLpolice

我添加物品進入通過屬性的DDLocation。因此,無論用戶何時嘗試點擊其中一個項目,DDLpolice都會自動從數據庫中獲取值。 不幸的是,有一個持續的錯誤,例如只有1個值可用時,數據將不會顯示。數據只有在您能夠顯示第一個選項之前有2個值需要選擇時纔會顯示。我用下面的代碼綁定我的DDLocation。我在下面添加了一個默認值。不幸的是,默認值僅適用於選擇DDLocation

protected void DDLocation_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     using (var connAdd = new SqlConnection("Data Source = localhost; Initial Catalog = project; Integrated Security= SSPI")) 
     { 
      connAdd.Open(); 

      var sql = "Select policeid from LoginRegisterPolice where location='" + lblocation.SelectedItem.Text + "' AND status='available' AND handle='offcase'"; 
      using (var cmdAdd = new SqlDataAdapter(sql, connAdd)) 
      { 
       DataSet ds2 = new DataSet(); 
       cmdAdd.Fill(ds2); 

       DDLpolice.DataSource = ds2; 
       DDLpolice.DataTextField = "policeid"; 
       DDLpolice.DataValueField = "policeid"; 
       DDLpolice.DataBind(); 

       DDLpolice.Items.Insert(0, new ListItem("Select Officer", "NA")); 
      } 

      connAdd.Close(); 
     } 
} 

的選擇,我想添加一個默認值到我DDLpolice就像我怎麼沒我以前的DDL。不幸的是,DDLpolice正在綁定,因此我無法添加默認值。我嘗試使用這2種方法,全部失敗

我爲此添加了文本。

<asp:DropDownList ID="DDLpolice" runat="server" DataTextField="dropdownpolice" DataValueField="dropdownpolice" Text="Select Officer" OnSelectedIndexChanged ="DDLpolice_SelectedIndexChanged1" style="height: 22px"> 
    </asp:DropDownList> 

我也是用這個方法的結論試圖

protected void DDLpolice_SelectedIndexChanged1(object sender, EventArgs e) 
{ 
    DDLpolice.Items.Add("Select Officer"); 
} 

因此,我認爲,我不能夠由於DDL的數據庫的結合增加。任何幫助,將不勝感激。

問候。


UPDATE! 我終於能夠通過使用AD.net

<asp:DropDownList ID="DDLpolice" runat="server" DataTextField="dropdownpolice"  DataValueField="dropdownpolice" OnSelectedIndexChanged ="DDLpolice_SelectedIndexChanged1"  style="height: 22px" 
    AppendDataBoundItems="true"> 
    <asp:ListItem Value="">Select Officer</asp:ListItem> 
    </asp:DropDownList> 

基本上給這個方法添加一個默認值,你就必須添加一個AppendDataBoundItem方法到你的源代碼(HTML端)。之後,添加一個ListItemValue,它將包含您的默認值。

回答

2

而且這是有道理的。無論何時您爲DropDownList執行DataBind,它都會丟失任何以前的值。您可以嘗試在ddl的OnDataBound事件之後添加額外的項目,該項目在完成DataBinding後應該觸發。您也可以嘗試玩這個屬性AppendDataBoundItems並在html中聲明一個默認項目。

AppendDataBoundItems讓您在每次執行數據綁定時追加項目,因此它不應該是您的正確選擇,除非刪除第一項以外的項目。

你應該按照第一種方法插入默認項ondatabound事件。

protected void DDLpoliceDataBound(object sender, EventArgs e) 
{ 
    DDLpolice.Items.Insert(0, new ListItem("Select Officer", "NA")); 
} 

<asp:DropDownList runat="server" ID="DDLpolice" 
ondatabound="DDLpoliceDataBound"></asp:DropDownList> 
+0

請舉例說明。我對AppendDataBoundItems沒有預先的知識。 –