2

私は怠け者です - SQLDataSource を使用して dropdownLists にデータを入力しています。

データバインドされたオブジェクトの Databind イベントは Page.PreRender の前に呼び出されるため、PreRender eventHandler で次のようなことを行っています。

private void InitializeDropDown()
        {
            this.myDropDown.Items.Insert(0, new ListItem("-- Select something --"));
        }

AppendDataBound アイテムを true に設定し、カスタム アイテムをマークアップにハードコーディングできることはわかっていますが、元に戻す前に、自分が行っていることが機能しない理由を理解したいと思います。

通常、次のように動的にバインドすると機能します。

myDropDown.DataTextField = "whatever";
myDropDown.DataValueField = "ID";
myDropDown.DataSource = GetStuff();
myDropDown.DataBind();
myDropDown.Items.Insert(0, "-- Select something --");

私がやっていることは同等である必要があります-唯一の違いは、SQLDataSourceを使用していることです。

どんな助けでも大歓迎です!

4

2 に答える 2

4

データソースの OnSelected メソッドに挿入行を配置します

myDropDown.Items.Insert(0, "-- 何かを選択してください --");

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.selected.aspx

于 2009-02-16T01:09:49.187 に答える
4

AppendDataBoundItems="true"dropDwonListを設定すると、charme のように機能します。マークアップにハードコーディングされたリスト項目がある場合にのみ使用することになっていると思いました。私は間違っていた。

于 2009-02-16T18:27:44.123 に答える