0

我的 aspx 页面中有一个带有 3 个硬编码选项的 DropDownList,其中还包含来自后面代码的 SQL 服务器的数据(AppendDataBoundItems="true")。我想做的是始终保留这 3 个硬编码选项,但是当部分或整个页面重新加载时,从数据库中提取的任何新 SQL 数据都将覆盖现有的 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>

代码隐藏:

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();
}
4

1 回答 1

0

您所要做的就是在绑定之前记住这些列表项。你可以这样做:

            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);
            }

如果您希望它们位于列表顶部,则可以使用 Insert 而不是 Add。

于 2012-10-20T11:28:05.897 回答