我有以下标记:
<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 中选择一个项目时,我都会获得所有选择了 regionId 的乡镇并重新填充下拉列表。但是 ddlTownships 会记住先前选择的具有不同区域的乡镇。请注意,我有属性 AppendDataBoundItems="True" 因为这是我可以添加一个显示“请选择一个乡镇”的列表项的唯一方法。如何保留标记中定义的列表项,并防止在重新填充 ddl 后显示以前的项目。
谢谢你的时间。