У меня есть следующая разметка:
<asp:DropDownList ID="ddlTownships" DataTextField="Name" AutoPostBack="True" AppendDataBoundItems="True" DataValueField="Id" runat="server" OnSelectedIndexChanged="ddlTownships_SelectedIndexChanged">
<asp:ListItem Value="0" Text="Please select a township"></asp:ListItem>
</asp:DropDownList>
и это код позади:
protected void ddlRegions_SelectedIndexChanged(object sender, EventArgs e)
{
var townshipDAO = (TownshipDAO)FactoryDAO.getInstance().getDAOByType(DAOEnum.Township);
ddlTownships.DataSource = townshipDAO.getAllTownshipsByRegionId(Int64.Parse(ddlRegions.SelectedValue));
ddlTownships.DataBind();
liTownships.Visible = true;
liSettlements.Visible = false;
divPhasesConsole.Visible = false;
liNumberOfStands.Visible = false;
divFirstDelimiter.Visible = false;
}
По сути, всякий раз, когда пользователь выбирает элемент из ddlRegion, я получаю все поселки с выбранным региономId и повторно заполняю раскрывающийся список. Однако ddlTownships запоминает ранее выбранные поселки с разными регионами. Обратите внимание, что у меня есть свойство AppendDataBoundItems="True", потому что это был единственный способ добавить элемент списка с надписью "Выберите город". Как я могу оставить элемент списка, определенный в разметке, и предотвратить отображение предыдущих элементов после повторного заполнения ddl.
Спасибо за ваше время.