我在我的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);
}
如果您希望它们在列表的顶部,则可以使用插入而不是添加。