将SQL数据重新列入下拉列表,但可以将硬编码的选项从ASPX页面保留



我在我的ASPX页面中有一个带有3个硬编码选项的下拉列表,该列表还包含来自SQL Server的数据(appendDataboundItems =" true"),来自后面的代码。我想做的是始终保留这3个硬编码的选项,但是当发生部分或完整页面时,从数据库中提取的任何新的SQL数据都会覆盖Exting SQL数据库信息,但请保留3个硬编码的选项。

ASPX页面代码:

<asp:DropDownList ID="ddlParentLocation" runat="server">
        <asp:ListItem Value="" Text="Select Parent Location" />
        <asp:ListItem Value="" Text="None" />
        <asp:ListItem Value="" Text="Unknown" />
    </asp:DropDownList>

codebehind:

protected void ddlMediaList_SelectedIndexChanged(object sender, EventArgs e)
{
    //Load existing locations for SelectedID
    ddlParentLocation.DataSource = SQLHelper.GetDataByQuery("SELECT LocationID, LocationName FROM dbo.vwLocations WHERE SectionID = '" + ddlMediaList.SelectedValue.ToString() + "'");
    ddlParentLocation.DataValueField = "LocationID";
    ddlParentLocation.DataTextField = "LocationName";
    ddlParentLocation.DataBind();
}

您要做的就是在进行绑定之前记住那些列表项目。您可以这样做:

            List<ListItem> itemList = new List<ListItem>(ddl1.Items.Count);
            foreach (ListItem item in ddl1.Items)
            {
                itemList.Add(item);
            }

然后绑定后,您可以像这样添加它们:

            foreach (ListItem item in itemList)
            {
                ddl1.Items.Add(item);
            }

如果您希望它们在列表的顶部,则可以使用插入而不是添加。

最新更新