2

我很懒——我正在使用 SQLDataSource 来填充我的下拉列表。

数据绑定对象的 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 设置了它,它就像魅力一样!我认为它应该只在标记中存在硬编码列表项的情况下使用。我错了。

于 2009-02-16T18:27:44.123 回答