我的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();
}
答案 0 :(得分: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);
}
如果您希望它们位于列表顶部,则可以使用“插入”而不是“添加”。