2013-05-29 69 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没有预先的知识。 –