2009-02-16 42 views
2

我很懒 - 我正在使用SQLDataSource来填充我的dropdownLists。如何将项添加到SqlDataSource数据库列表

的数据绑定事件的数据绑定对象Page.PreRender之前调用,所以我在做预渲染事件处理程序是这样的:

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

我知道我可以设置AppendDataBound项目真实,我硬编码定制项目中的标记,但恢复之前,我想了解为什么我所做的不工作。唯一的区别是我使用一个SqlDataSource -

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

我在做什么应该是等价的:

它通常当我动态绑定这样的东西的作品。

任何帮助表示赞赏!

回答

4

我设置AppendDataBoundItems="true"为dropDwonList和它的作品一样迷人! 我认为它应该只用于存在硬编码列表项目的标记。我错了。

4

把你的插入线的数据源

myDropDown.Items.Insert的OnSelected方法(0 “ - 选择什么 - ”);

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

+0

不错 - 基本上这是用sqlDataSource编程的唯一方法吗?我仍然不明白为什么如果我动态地绑定它,我可以在Databind调用后立即调用Insert。我在做什么和处理SqlDataSource的OnSelected方法有什么区别? – JohnIdol 2009-02-16 08:49:02