我很懒 - 我正在使用SQLDataSource填充我的dropdownLists。
在Page.PreRender之前调用数据绑定对象的Databind事件,所以我在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。
任何帮助表示赞赏!
答案 0 :(得分:4)
将插入行放在数据源的OnSelected方法
上myDropDown.Items.Insert(0,“ - 选择一些东西 - ”);
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.selected.aspx
答案 1 :(得分:4)
我为dropDown列表设置了AppendDataBoundItems="true"
,它就像魅力一样!
我认为它应该仅在标记中存在硬编码列表项时使用。我错了。