如何在转发器中绑定gridview?

时间:2011-09-13 06:28:27

标签: asp.net gridview repeater

我想绑定在转发器内部的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>

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:5)

如果您的实体whitch与重复有关,则必须有数据源(例如实体列表),只需使用此属性指定DataSource的{​​{1}}。

GridView

其中<asp:GridView ID="rep_DataSimilarToBacthid" runat="server" Style="text-align: center; width: 375px;" AutoGenerateColumns="false" DataSource='<%# Eval("GridDataSource") %>'> 是项目集合。

您还可以定义方法,该方法将在代码隐藏处指定数据源并将其命名为:

<强> Page.aspx

GridDataSource

<强> CodeBehind.cs

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

另外,请查看帖子:

Binding gridview inside a repeater

Adding Gridview nested in Repeater in ASP.NET 2.0

Repeater within Gridview in C# ASP.NET 2.0 - 您的案例中的概念相同

Bind Repeater's DataRow to GridView's DataSource