我正在尝试在我的dropdownlistbox中添加一个默认值。
我有2个;
我通过属性将项目添加到DDLocation中。因此,每当用户尝试单击其中一个项目时,DDLpolice将自动从数据库中获取值。 不幸的是,有一个持续存在的错误,例如只要有一个值可用,就不会显示数据。只有在能够显示第一个选项之前要选择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>
基本上,您必须在源代码(html端)中添加AppendDataBoundItem方法。之后,添加一个ListItemValue,它将包含您的默认值。
答案 0 :(得分: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>