在CodeBehind ASP NET中找不到GridView

时间:2016-04-03 20:47:23

标签: c# asp.net gridview

我有一个带有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>

1 个答案:

答案 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