2014-09-02 3 views
0

Я заполняю выпадающий список, когда я нажимаю значение в другом раскрывающемся списке, например. отношение городов городов, но проблема в том, что он загружает релевантные значения при нажатии, но если я изменяю значение в родительском потоке, то он добавляет старые значения, например. если я выберу U.S.A в выпадающем списке родителей, то он загружает города, например, Нью-Йорк, Вашингтон, Лас-Вегас и т. д., но если я нажму Пакистан, то он загрузит пакистанские города и города США, например, добавит, почему?Зачем бросать старые значения при каждой обратной передаче?

Код:

protected void drpAgainstDistrict_SelectedIndexChanged(object sender, EventArgs e)//against district drop down selected index changed event 
    { 
     if (txtSelectedID.Text != "") 
     { 
      MyComplaints obj = new MyComplaints(); 
      int ID = Convert.ToInt32(drpAgainstDistrict.SelectedValue); 
      DataSet ds = obj.SelectHomePoliceStaions(ID); 

      drpAgainstPoliceStation.DataTextField = "PsName"; 
      drpAgainstPoliceStation.DataValueField = "ID"; 
      drpAgainstPoliceStation.DataSource = ds.Tables[0]; 
      drpAgainstPoliceStation.DataBind(); 
      HiddenFieldShowHideButtons.Value = "True"; 
     } 
     else 
     { 
      MyComplaints obj = new MyComplaints(); 
      int ID = Convert.ToInt32(drpAgainstDistrict.SelectedValue); 
      DataSet ds = obj.SelectHomePoliceStaions(ID); 

      drpAgainstPoliceStation.DataTextField = "PsName"; 
      drpAgainstPoliceStation.DataValueField = "ID"; 
      drpAgainstPoliceStation.DataSource = ds.Tables[0]; 
      drpAgainstPoliceStation.DataBind(); 
     } 

    } 

.aspx

<label>Relevant District</label> 
<asp:DropDownList ID="drpAgainstDistrict" runat="server" 
        Width="178px" AutoPostBack="True" 
        OnSelectedIndexChanged="drpAgainstDistrict_SelectedIndexChanged"> 
</asp:DropDownList> 

<label>Relevant Police Station</label> 
<asp:DropDownList ID="drpAgainstPoliceStation" runat="server" 
        Width="178px" AppendDataBoundItems="true"> 
    <asp:ListItem Text="-Select-" Value="-1"></asp:ListItem> 
</asp:DropDownList> 

ответ

1

У вас есть AppendDataBoundItems="true". В документации указано, что это «указывает, очищаются ли элементы списка до привязки данных», в вашем случае он будет добавлять элементы списка без первой очистки списка.

Источник: ListControl.AppendDataBoundItems Property

+0

так что я должен делать? – user3518032

+0

Нечего делать. Вы спросили, почему были добавлены элементы, я указал свойство, которое добавляло элементы. Если вы не хотите, чтобы они были добавлены, удалите его или установите для него значение false. – sisve

+0

сделано, работало, спасибо большое :) – user3518032

1

Из-за ViewState. Просто снимите Dropdownlist. yourDropdownList.Items.Clear();

+0

после DataBind()? – user3518032

0

Мой совет - обернуть каскадные выпадающие списки с помощью UpdatePanel.

0

Из AppendDataBoundItems = "истина" изменения в AppendDataBoundItems = "ложных"

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