【发布时间】:2011-10-08 10:19:06
【问题描述】:
我有一个asp:DataGrid,其中有一个asp:Gridview,其中有许多嵌套的asp:Repeater,我正在尝试从我的OnItemDataBound 函数中引用嵌套中继器
我的代码是这样的
<asp:Datagrid runat="server" id="DataGrid1" OnItemDataBound="ItemDB" AutoGenerateColumns="false" Gridlines="None">
<Columns>
<asp:TemplateColumn HeaderText="">
<ItemTemplate>
<asp:GridView id="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<p>Test</p>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:Datagrid>
有点复杂,但这就是我正在使用的。
在我的ItemDB 命令中我有这个
Sub ItemDB(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
If CType(e.Item.FindControl("GridView1"), GridView).Visible = True Then
CType(e.Item.FindControl("Repeater"), GridView).Visible = True
End If
End If
End Sub
但我得到了错误
对象引用未设置为对象的实例
我猜这是因为我在 GridView 中引用了中继器
任何想法如何正确引用它?
这段代码可能不是最简单的方法,但我已经接管了别人的工作,需要快速修复,然后再重新编码
提前致谢
【问题讨论】:
标签: asp.net vb.net gridview datagrid repeater