0
我會認爲這段代碼應該是非常簡單和直接,但我有問題。下面的子頁面在頁面加載時被調用。它位於加載其他下拉列表的類似函數之間。所有其他的下拉菜單都在填充,但這些都不是。其他下拉式子集使用相同的With子句,但綁定到DataSet(一個表),該DataSet使用對數據庫的存儲過程調用進行填充,而不是綁定到靜態DataTable。DataTable不綁定到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作爲DataTable **到** Dim dtMain作爲_New_ DataTable **。 Dim DimGypsum與新數據表**相同** – HengChin