Как добавить Item в список данных SqlDataSource - PullRequest
2 голосов
/ 16 февраля 2009

Я ленивый - и я использую 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.

Любая помощь приветствуется!

Ответы [ 2 ]

4 голосов
/ 16 февраля 2009

Я установил AppendDataBoundItems="true" для dropDwonList, и он работает как шарм! Я думал, что он должен использоваться только при наличии жестко закодированных элементов списка в разметке. Я был не прав.

4 голосов
/ 16 февраля 2009

Поместите строку вставки в метод OnSelected источника данных

myDropDown.Items.Insert (0, "- Выберите что-то -");

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

...