0

aspx ページに 3 つのハードコーディングされたオプションを持つ DropDownList があり、コード ビハインドから SQL サーバーからのデータも追加されています (AppendDataBoundItems="true")。私がやりたいことは、これらの 3 つのハードコードされたオプションを常に保持することですが、部分的または完全なページのリロードが発生すると、DB から取得された新しい 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);
            }

リストの一番上に配置したい場合は、Add の代わりに Insert を使用できます。

于 2012-10-20T11:28:05.897 に答える