如何用VB.Net在ASP.Net中编写代码填充DropDownList控件?

2026-05-06 12:501阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计653个文字,预计阅读时间需要3分钟。

如何用VB.Net在ASP.Net中编写代码填充DropDownList控件?

在我们的ASP.Net/VB.Net Web表单的标记中,有一个下拉列表(DropDownList)。我们希望从DataSet设计器创建一个DataSet,并填充数据到这个下拉列表。但是,我们找不到使用FindControl方法获取DropDownList的代码。

我们在ASP.Net / VB.Net Web表单的标记中有一个DropDownList.

我们希望从DataSet设计器创建一个DataSet填充数据DropDownList的,但我们使用的代码隐藏文件的编码没有找到使用的FindControl DropDownList的ID.

你能检查我的编码并让我知道我还需要做些什么来填充DropDownList吗?

DropDownList的标记:

<% '-- DetailsView (Grid) for details of the GridView -- %> <% '---------------------------------------------------- %> <asp:DetailsView ID="DetailsView" runat="server" AutoGenerateRows="False" Height="50px" Width="207px" DataSourceID="SqlDataSourceDetails" DataKeyNames="ID" OnItemCommand="DetailsViewDetails_ItemCommand" OnDataBound="DetailsView_DataBound"> <Fields> <asp:TemplateField HeaderText="Class:" SortExpression="ClassID"> <EditItemTemplate> <asp:DropDownList ID="DropDownListClass" Runat="server"> </asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditDropDownListClass" runat="server" ControlToValidate="DropDownListClass" ErrorMessage="Please select a class." Font-Bold="True" Font-Italic="True" ForeColor="Red" SetFocusOnError="True" Display="Dynamic"> </asp:RequiredFieldValidator> </EditItemTemplate> <ItemTemplate> <asp:Literal ID="LiteralClass" runat="server" Text='<%# FormatAsMixedCase(Eval("ClassName").ToString())%>' /> </ItemTemplate> <ItemStyle ForeColor="Blue" /> </asp:TemplateField> </Fields>

代码隐藏文件中的编码:

如何用VB.Net在ASP.Net中编写代码填充DropDownList控件?

Protected Sub DetailsView_DataBound(sender As Object, e As EventArgs) Dim theClassesTableAdapter As New DataSetClassesTableAdapters.ClassesTableAdapter Dim ddlTheDropDownList = DirectCast(FindControl("DropDownListClass"), DropDownList) ddlTheDropDownList.DataSource = theClassesTableAdapter.GetDataByAllClasses ddlTheDropDownList.DataTextField = "ClassName" ddlTheDropDownList.DataValueField = "ClassID" ddlTheDropDownList.SelectedValue = "ClassID" ddlTheDropDownList.DataBind() End Sub

DetailsView的DataSouce标记:

<% '-- Datasources -- %> <% '----------------- %> <asp:SqlDataSource ID="SqlDataSourceDetails" runat="server" ConnectionString="<%$ConnectionStrings:Knowledge Academy %>" DeleteCommand= "DELETE FROM [TeacherSchedule] WHERE [ID] = @ID" InsertCommand= "INSERT INTO [TeacherSchedule] ([DayOfWeek], [Grade], [StartTime], [EndTime], [ClassID]) VALUES (@DayOfWeek, @Grade, @StartTime, @EndTime, @ClassID)" SelectCommand= "SELECT TeacherSchedule.ID, TeacherSchedule.Grade, TeacherSchedule.StartTime, TeacherSchedule.EndTime, TeacherSchedule.TeacherID, TeacherSchedule.ClassID, TeacherSchedule.DayOfWeek, Classes.ClassName, Teachers.Forename, Teachers.Surname FROM TeacherSchedule INNER JOIN Classes ON TeacherSchedule.ID = Classes.ID INNER JOIN Teachers ON TeacherSchedule.ID = Teachers.ID WHERE (TeacherSchedule.ID = @ID)" UpdateCommand= "UPDATE [TeacherSchedule] SET [DayOfWeek] = @DayOfWeek, [Grade] = @Grade, [StartTime] = @StartTime, [EndTime] = @EndTime, [ClassID] = @ClassID WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="DayOfWeek" Type="String" /> <asp:Parameter Name="Grade" Type="String" /> <asp:Parameter Name="StartTime" Type="String" /> <asp:Parameter Name="EndTime" Type="String" /> <asp:Parameter Name="ClassID" Type="Int32" /> </InsertParameters> <SelectParameters> <asp:ControlParameter ControlID="GridViewSummary" Name="ID" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="DayOfWeek" Type="String" /> <asp:Parameter Name="Grade" Type="String" /> <asp:Parameter Name="StartTime" Type="String" /> <asp:Parameter Name="EndTime" Type="String" /> <asp:Parameter Name="ClassID" Type="Int32" /> <asp:Parameter Name="ID" /> </UpdateParameters> </asp:SqlDataSource> 尝试在DropDownList_Init事件处理程序中填充DropDownList.

标记:

<asp:DropDownList ID="ddlTheDropDownList" runat="server" OnInit="ddlTheDropDownList_Init">

后面的代码应该看起来像这样,我更习惯于C#,但我希望你明白这一点:

Protected Sub ddlTheDropDownList_Init(sender As Object, e As EventArgs) Dim ddl As DropDownList ddl = sender As DropDownList ddl.Datasource = theClassesTableAdapter.GetDataByAllClasses ddl.DataTextField = "ClassName" ddl.DataValueField = "ClassID" ddl.SelectedValue = "ClassID" ddl.DataBind() End Sub

本文共计653个文字,预计阅读时间需要3分钟。

如何用VB.Net在ASP.Net中编写代码填充DropDownList控件?

在我们的ASP.Net/VB.Net Web表单的标记中,有一个下拉列表(DropDownList)。我们希望从DataSet设计器创建一个DataSet,并填充数据到这个下拉列表。但是,我们找不到使用FindControl方法获取DropDownList的代码。

我们在ASP.Net / VB.Net Web表单的标记中有一个DropDownList.

我们希望从DataSet设计器创建一个DataSet填充数据DropDownList的,但我们使用的代码隐藏文件的编码没有找到使用的FindControl DropDownList的ID.

你能检查我的编码并让我知道我还需要做些什么来填充DropDownList吗?

DropDownList的标记:

<% '-- DetailsView (Grid) for details of the GridView -- %> <% '---------------------------------------------------- %> <asp:DetailsView ID="DetailsView" runat="server" AutoGenerateRows="False" Height="50px" Width="207px" DataSourceID="SqlDataSourceDetails" DataKeyNames="ID" OnItemCommand="DetailsViewDetails_ItemCommand" OnDataBound="DetailsView_DataBound"> <Fields> <asp:TemplateField HeaderText="Class:" SortExpression="ClassID"> <EditItemTemplate> <asp:DropDownList ID="DropDownListClass" Runat="server"> </asp:DropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidatorEditDropDownListClass" runat="server" ControlToValidate="DropDownListClass" ErrorMessage="Please select a class." Font-Bold="True" Font-Italic="True" ForeColor="Red" SetFocusOnError="True" Display="Dynamic"> </asp:RequiredFieldValidator> </EditItemTemplate> <ItemTemplate> <asp:Literal ID="LiteralClass" runat="server" Text='<%# FormatAsMixedCase(Eval("ClassName").ToString())%>' /> </ItemTemplate> <ItemStyle ForeColor="Blue" /> </asp:TemplateField> </Fields>

代码隐藏文件中的编码:

如何用VB.Net在ASP.Net中编写代码填充DropDownList控件?

Protected Sub DetailsView_DataBound(sender As Object, e As EventArgs) Dim theClassesTableAdapter As New DataSetClassesTableAdapters.ClassesTableAdapter Dim ddlTheDropDownList = DirectCast(FindControl("DropDownListClass"), DropDownList) ddlTheDropDownList.DataSource = theClassesTableAdapter.GetDataByAllClasses ddlTheDropDownList.DataTextField = "ClassName" ddlTheDropDownList.DataValueField = "ClassID" ddlTheDropDownList.SelectedValue = "ClassID" ddlTheDropDownList.DataBind() End Sub

DetailsView的DataSouce标记:

<% '-- Datasources -- %> <% '----------------- %> <asp:SqlDataSource ID="SqlDataSourceDetails" runat="server" ConnectionString="<%$ConnectionStrings:Knowledge Academy %>" DeleteCommand= "DELETE FROM [TeacherSchedule] WHERE [ID] = @ID" InsertCommand= "INSERT INTO [TeacherSchedule] ([DayOfWeek], [Grade], [StartTime], [EndTime], [ClassID]) VALUES (@DayOfWeek, @Grade, @StartTime, @EndTime, @ClassID)" SelectCommand= "SELECT TeacherSchedule.ID, TeacherSchedule.Grade, TeacherSchedule.StartTime, TeacherSchedule.EndTime, TeacherSchedule.TeacherID, TeacherSchedule.ClassID, TeacherSchedule.DayOfWeek, Classes.ClassName, Teachers.Forename, Teachers.Surname FROM TeacherSchedule INNER JOIN Classes ON TeacherSchedule.ID = Classes.ID INNER JOIN Teachers ON TeacherSchedule.ID = Teachers.ID WHERE (TeacherSchedule.ID = @ID)" UpdateCommand= "UPDATE [TeacherSchedule] SET [DayOfWeek] = @DayOfWeek, [Grade] = @Grade, [StartTime] = @StartTime, [EndTime] = @EndTime, [ClassID] = @ClassID WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="DayOfWeek" Type="String" /> <asp:Parameter Name="Grade" Type="String" /> <asp:Parameter Name="StartTime" Type="String" /> <asp:Parameter Name="EndTime" Type="String" /> <asp:Parameter Name="ClassID" Type="Int32" /> </InsertParameters> <SelectParameters> <asp:ControlParameter ControlID="GridViewSummary" Name="ID" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="DayOfWeek" Type="String" /> <asp:Parameter Name="Grade" Type="String" /> <asp:Parameter Name="StartTime" Type="String" /> <asp:Parameter Name="EndTime" Type="String" /> <asp:Parameter Name="ClassID" Type="Int32" /> <asp:Parameter Name="ID" /> </UpdateParameters> </asp:SqlDataSource> 尝试在DropDownList_Init事件处理程序中填充DropDownList.

标记:

<asp:DropDownList ID="ddlTheDropDownList" runat="server" OnInit="ddlTheDropDownList_Init">

后面的代码应该看起来像这样,我更习惯于C#,但我希望你明白这一点:

Protected Sub ddlTheDropDownList_Init(sender As Object, e As EventArgs) Dim ddl As DropDownList ddl = sender As DropDownList ddl.Datasource = theClassesTableAdapter.GetDataByAllClasses ddl.DataTextField = "ClassName" ddl.DataValueField = "ClassID" ddl.SelectedValue = "ClassID" ddl.DataBind() End Sub