我有一个带有gridview1的页面,只有一列ItemTemplate。在我的gridview1中的这个ItemTemplate中,我有一个gridview2。我对gridview1没有任何问题。在代码隐藏中,我通常填充它:
gridview1.DataSource = DaoUser.findAll();
gridview1.DataBind();
并且gridview1已正确创建。但是当我尝试使用gridview2做同样的事情时,我收到了一条消息错误:
gridview2.DataSource = DaoUser.findAll();
gridview2.DataBind();
名称' gridview2'在当前上下文中不存在
我的aspx代码:
<asp:GridView runat="server" ID="gridview1">
<colums>
<asp:TemplateField>
<ItemTemplate>
<asp:GridView runat="server" ID="gridview2">
</asp:Gridview>
</ItemTemplate>
</asp:TemplateField>
</columns>
</asp:GridView>
答案 0 :(得分:2)
您需要做的是使用GridView1_RowDataBound事件在行中找到控件,因为每行都有一个网格视图(这是在VB中):
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowState = DataControlRowState.Normal And e.Row.RowType = DataControlRowType.DataRow Then
Dim tmpGridView As GridView = e.Row.FindControl("GridView2")
If Not tmpGridView Is Nothing Then
tmpGridView.DataSource = DaoUser.findAll
tmpGridView.DataBind()
End If
End If
End Sub