2016-04-03 15 views
1

ItemTemplateの列が1つしかないgridview1のページがあります。私のgridview1のこのItemTemplateの中にgridview2があります。私はgridview1に問題はありません。分離コードでは、私は通常、それを移入得た:CodeBehind ASP NETでGridViewが見つかりません

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> 

答えて

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 
関連する問題