2011-09-13 14 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を見つけることている場合: -

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

エンティティがwhitch repeateに制限されている場合necessareデータソース(例えば、エンティティのリスト)だけで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

関連する問題