2013-05-29 2 views
3

Я пытаюсь добавить только 1 значение по умолчанию в 1 из моего dropdownlistbox.Добавление значения по умолчанию в выпадающий список

У меня 2;

  1. DDLocation
  2. DDLpolice

Я добавил элементы в 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> 

В принципе, вы должны добавить метод AppendDataBoundItem в исходный код (HTML-сторона). После этого добавьте ListItemValue, который будет содержать значение по умолчанию.

ответ

2

И это имеет смысл. Всякий раз, когда вы делаете DataBind для DropDownList, он теряет все предыдущие значения. Вы можете попробовать добавить дополнительный элемент после события OnDataBound для ddl, который должен срабатывать после завершения 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. –

Смежные вопросы