我正在尝试以Web形式填充DropDownList
,并且正在处理GridView
中的嵌套FormView
,所以我尝试了以下操作:
在我的课程BusnissMethodsLayer
Shared Function GetProductData() As ProductsDataTable
Dim productTableAdabter As New ProductsTableAdapter
Return productTableAdabter.GetData()
End Function
以我的网络表单:
Dim getPruducts As DataTable = BusnissMethodsLayer.GetProductData()
CType(CType(FormView1.FindControl("GridView1"), GridView).FindControl("ProductNameDropList"), DropDownList).DataSource = getPruducts
CType(CType(FormView1.FindControl("GridView1"), GridView).FindControl("ProductNameDropList"), DropDownList).DataBind()
asp代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="OrderID,ProductID" EnableModelValidation="True" ForeColor="#333333" GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ShowFooter="True">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="OrderID" SortExpression="OrderID">
<ItemTemplate>
<asp:Label ID="OrderID" runat="server" Text='<%# Bind("OrderID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ProductID" SortExpression="ProductID">
<ItemTemplate>
<asp:Label ID="ProductID" runat="server" Text='<%# Bind("ProductID") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ProductNameDropList" DataTextField="ProductName" DataValueField="ProductName" runat="server" Width="126px">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="UnitPrice" SortExpression="UnitPrice">
<ItemTemplate>
<asp:Label ID="Label111" runat="server" Text='<%# Bind("UnitPrice") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="UnitPrice" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Quantity" SortExpression="Quantity">
<ItemTemplate>
<asp:Label ID="Label1111" runat="server" Text='<%# Bind("Quantity") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Quantity" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Discount" SortExpression="Discount">
<ItemTemplate>
<asp:Label ID="Label11111" runat="server" Text='<%# Bind("Discount") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Discount" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Discount" SortExpression="Discount">
<ItemTemplate>
<asp:Label ID="Label111111" runat="server" Text='<%# Bind("Discount") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="Total" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#7C6F57" />
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#E3EAEB" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
这是错误:
类型为'System.NullReferenceException'的异常发生在 ManageOrders2.DLL,但未在用户代码中处理
其他信息:对象引用未设置为的实例 对象。
PS:我之前没有嵌套就已经做到了,而且效果很好