这是我的下拉列表和数据源。我的问题是..什么时候可以为下拉列表设置默认选择的选项,也就是说所有的下拉列表都是数据绑定并且他们的ListItems已填充?我尝试过Page_PreRender,Page_PreRenderComplete,Page_Load。
我已阅读过MSDN的页面生命周期事件,该事件建议使用Page_PreRender。
<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函数中没有任何项目。但是当页面加载时,下拉列表确实加载了预期的数据绑定信息。想法?
答案 0 :(得分: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>
刚才在我的机器上尝试过类似的解决方案,但它确实有用。