2016-04-03 77 views
1

我有一個只有一列ItemTemplate的gridview1的頁面。在我gridview1的這個ItemTemplate裏面我有一個gridview2。我沒有與gridview1的問題。在代碼隱藏我通常填充它:GridView未在CodeBehind ASP NET中找到

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