2014-09-02 42 views
0

當我點擊另一個下拉列表中的值時,我正在填充下拉列表,例如國家城市的關係,但問題是,它加載相關值upo點擊,但如果我改變父母下拉值,然後它附加舊值,例如如果我選擇美國在父母下拉,然後它加載城市,即紐約,華盛頓,拉斯維加斯等,但如果我點擊巴基斯坦然後它加載巴基斯坦城市加上美國城市,如追加,爲什麼?爲什麼在每次回傳時都會保留舊值?

代碼:

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 2014-09-02 07:48:08

+0

沒有什麼可做的。你問爲什麼附加物品,我指出附加物品的屬性。如果您不希望添加它們,請將其刪除或將其設置爲false。 – sisve 2014-09-02 07:51:04

+0

完成,工作,非常感謝:) – user3518032 2014-09-02 07:56:04

1

因爲ViewState。只需清除Dropdownlist。 yourDropdownList.Items.Clear();

+0

數據綁定後的()? – user3518032 2014-09-02 07:42:36

0

我的建議是用UpdatePanel打包級聯下拉列表。

0

因爲AppendDataBoundItems = 「真」 改變AppendDataBoundItems = 「假」

相關問題