2

这是我的下拉列表和数据源。我的问题是.. 什么时候可以为下拉列表设置默认选定选项,也就是所有下拉列表何时被数据绑定并填充它们的 ListItems?我已经尝试过 Page_PreRender、Page_PreRenderComplete、Page_Load。

我已经阅读了建议 Page_PreRender 的 MSDN 页面生命周期事件。

 <asp:DropDownList ID="ddlRampStandard" runat="server"
 DataSourceID="RampStandardDataSource" DataTextField="StandardName" 
 DataValueField="StandardName" RepeatDirection="Horizontal" 
 ViewStateMode="Enabled"></asp:DropDownList>

 <asp:SqlDataSource ID="RampStandardDataSource" runat="server" 
 ConnectionString="<%$ ConnectionStrings:AIMP_DeleteMeConnectionString %>" 
 SelectCommand="SELECT [StandardName] FROM [CR_Standard]"></asp:SqlDataSource>

这是简单的代码隐藏,它说明了我正在尝试做的事情。

Protected Sub Page_PreRenderComplete(sender As Object, e As System.EventArgs) Handles Me.Load
ddllstSideOfStreet.Items(0).Selected = True
End Sub

我收到一个未创建实例的错误,提示 ddllstSideOfStreet 没有项目。我确实使用断点验证了这一点,并观察前面提到的任何 prerender、load、prerendercomplte 函数中不存在任何项目。但是,当页面加载时,下拉列表确实加载了预期的数据绑定信息。想法?

4

1 回答 1

1

只是为了确保,标记中的处理程序和后面代码中使用正确处理程序的方法。

像这样:

Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender

End Sub

标记如下:

<asp:DropDownList ID="ddlRampStandard" runat="server"     
 DataSourceID="RampStandardDataSource" DataTextField="StandardName"      
 DataValueField="StandardName" RepeatDirection="Horizontal"      
 ViewStateMode="Enabled" OnPreRender="Page_PreRender"></asp:DropDownList>

刚才在我的机器上尝试了一个类似的解决方案,它奏效了。

于 2012-06-12T17:04:37.553 回答