Я бы подумал, что этот код должен быть очень простым и прямым, но у меня проблемы. Нижняя часть ниже вызывается при загрузке страницы. Он расположен между аналогичными функциями, которые загружают другие выпадающие списки. Все остальные спускаются, но это не так. Другие выпадающие субтитры используют одно и то же предложение WITH, но привязываются к DataSet (из одной таблицы), который заполняется вызовом хранимой процедуры в базу данных, а не привязывается к статическому DataTable.DataTable Not Binding to ASP: DropDownList
VB код:
Private Sub LoadEquations()
Dim dtMain As DataTable
Dim dtGypsum As DataTable
Dim dr As DataRow
dtMain.Columns.Add("Text")
dtMain.Columns.Add("Value")
dr = dtMain.NewRow
dr.Item("Text") = " "
dr.Item("Value") = "0"
dtMain.Rows.Add(dr)
dtMain.AcceptChanges()
dr = dtMain.NewRow
dr.Item("Text") = "Build"
dr.Item("Value") = "B"
dtMain.Rows.Add(dr)
dtMain.AcceptChanges()
dr = dtMain.NewRow
dr.Item("Text") = "Maintain"
dr.Item("Value") = "M"
dtMain.Rows.Add(dr)
dtMain.AcceptChanges()
With Me.ddMainEquation
.DataSource = dtMain
.DataTextField = "Text"
.DataValueField = "Value"
.DataBind()
End With
dtGypsum.Columns.Add("Text")
dtGypsum.Columns.Add("Value")
dr = dtGypsum.NewRow
dr.Item("Text") = " "
dr.Item("Value") = "0"
dtGypsum.Rows.Add(dr)
dtGypsum.AcceptChanges()
dr = dtGypsum.NewRow
dr.Item("Text") = "pH Base"
dr.Item("Value") = "P"
dtGypsum.Rows.Add(dr)
dtGypsum.AcceptChanges()
dr = dtGypsum.NewRow
dr.Item("Text") = "% Sodium Base"
dr.Item("Value") = "S"
dtGypsum.Rows.Add(dr)
dtGypsum.AcceptChanges()
With Me.ddGypsumEquation
.DataSource = dtGypsum
.DataTextField = "Text"
.DataValueField = "Value"
.DataBind()
End With
End Sub
DNN/ASP код:
<tr>
<td>
<asp:Label ID="lblMainEquation" runat="server"
CssClass="FormLabelLeft">Main Equation</asp:Label></td>
<td>
<asp:Label ID="lblGypsumEquation" runat="server"
CssClass="FormLabelLeft">Gypsum Equation</asp:Label></td>
</tr>
<tr>
<td>
<asp:DropDownList ID="ddMainEquation" TabIndex="34"
runat="server" CssClass="FormField"></asp:DropDownList></td>
<td>
<asp:DropDownList ID="ddGypsumEquation" TabIndex="34"
runat="server" CssClass="FormField"></asp:DropDownList></td>
</tr>
Что мне не хватает? Я использую более старую платформу DNN 2.0.
Ваш код выглядит хорошо. Вам нужно установить точку останова внутри 'LoadEquations()' и убедиться, что вызывается 'LoadEquations()'. – Win
Попробуйте изменить ** Dim dtMain As DataTable ** to ** Dim dtMain As _New_ DataTable **. То же самое для ** Dim dtGypsum As New DataTable ** – HengChin