2011-09-13 6 views
4

리피터 내부에있는 gridview를 바인딩하고 싶습니다. 내 코드는리피터 내부에서 gridview를 바인딩하는 방법은 무엇입니까?

<asp:Repeater ID="rep_UnAssignComps" runat="server"> 

     <ItemTemplate> 
      <asp:GridView ID="rep_DataSimilarToBacthid" runat="server" Style="text-align: center; 
       width: 375px;" AutoGenerateColumns="false"> 
       <Columns> 
        <asp:BoundField HeaderText="Test" DataField="Test" /> 
       </Columns> 

      </asp:GridView> 

    </ItemTemplate> 
</asp:Repeater> 

답변

6

입니다. 리피터의 ItemDataBound 이벤트를 실행해야합니다. 어떤에서 당신이있는 gridview을 찾아야 한 후 다음과 같은 바인딩 : - repeate에 묶여있다 whitch 당신의 엔티티가 necessare 데이터 소스 (예를 들어 개체의 목록)가있는 경우

If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then 


     Dim grd As GridView = TryCast(e.Item.FindControl("rep_DataSimilarToBacthid"), GridView) 
     grd.DataSource = dt 

     grd.DataBind() 
    end if 
4

그냥 GridViewDataSource과에 지정 이 속성.

<asp:GridView ID="rep_DataSimilarToBacthid" runat="server" Style="text-align: center; 
      width: 375px;" AutoGenerateColumns="false" DataSource='<%# Eval("GridDataSource") %>'> 

여기에서 GridDataSource은 항목 모음입니다.

또한 당신은 방법 마녀 코드 숨김에서 데이터 소스를 지정하고 호출 정의 할 수 있습니다 :

을 Page.aspx을

<asp:GridView ID="rep_DataSimilarToBacthid" runat="server" Style="text-align: center; 
      width: 375px;" AutoGenerateColumns="false" DataSource='<%# GetGridViewData(Container.DataItem) %>'> 

CodeBehind.cs

public List<GridViewDataItem> GetGridViewData(Object repeaterObject) 
{ 
    // define what you need here 
} 

또한 게시물을 확인하십시오 :

Adding Gridview nested in Repeater in ASP.NET 2.0

Repeater within Gridview in C# ASP.NET 2.0

Binding gridview inside a repeater

- 귀하의 경우 같은 개념

Bind Repeater's DataRow to GridView's DataSource

관련 문제