繁体   English   中英

Dropdownlist asp.net无法正常工作

[英]Dropdownlist asp.net not working properly

我有以下标记:

<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后显示先前的项目。

谢谢你的时间。

您可以在后面的代码中的特定索引处插入新的列表项。 因此,您可以删除AppendDataBoundItems并将其添加到数据绑定之后:

ddlTownships.Items.Insert(0, new ListItem() { Text = "Please select a township", Value = "0" });

要知道的另一件事是可以在数据绑定之前清除列表:

ddlTownships.Items.Clear();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM