【问题标题】:ASP.NET DataGrid within a Repeater中继器中的 ASP.NET DataGrid
【发布时间】:2010-12-08 22:49:01
【问题描述】:

我有一个包含两列的表格:

CommunityID
PersonID

还有一个“人”表,其中包含(除其他外):

FirstName
LastName

我想为每个社区显示不同的 DataGrid,每个 datagrid 只有属于该社区的人。我想在不使用 4 个单独的 SqlDataSource 的情况下执行此操作。

Repeater 看起来是个不错的方法,在 ItemTemplate 中有一个 DataGrid,但我似乎无法确定让它与每次重复的不同值一起工作的正面或反面。

如果有人对更好的方法有任何建议,我将非常感激,因为这是我第一次涉足 ASP.NET 世界

谢谢,

迈克

【问题讨论】:

    标签: asp.net datagrid repeater


    【解决方案1】:

    我个人不会使用 DataGrid 控件,因为它限制了您对输出的控制,并且它们已被更新的 GridViewListView 控件取代(尽管 DataGrid 是 not obsolete,所以请随意使用如果你愿意的话)。您可能需要考虑使用替代方案,但您不需要这样做。

    要执行您要查找的操作,您需要使用如下标记:

    <asp:Repeater runat="server" ID="myRepeater" 
                  onitemdatabound="Repeater_ItemDataBound">
    <ItemTemplate>
        <asp:DataGrid runat="server" ID="myDataGrid">
        </asp:DataGrid>
    </ItemTemplate>
    </asp:Repeater>
    

    然后,您将使用以下代码隐藏来连接标记:

    protected void Page_Load(object sender, EventArgs e)
    {
        myRepeater.DataSource = new Object[0];
        myRepeater.DataBind();
    }
    
    protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DataGrid dg = (DataGrid)e.Item.FindControl("myDataGrid");
        object o = e.Item.DataItem;// Cast the DataItem as whatever 
                                   // your Repeater's DataSource is
    
        // ...
        // Do whatever you need to get the 
        // data source for your DataGrid here
        // ...
    
        dg.DataSource = DataGridSourceObjectHere;
        dg.DataBind();
    }
    

    关键是Repeater的ItemDataBound事件,就是每次创建repeater行时调用的方法。您可以在此处对 DataGrid 源进行数据绑定。您可以使用RepeaterItemEventArgs 参数将您需要的任何逻辑放入此方法中,以访问您绑定到中继器的数据项。

    【讨论】:

    • 我不太明白。我需要我的转发器有一个 sqlDataSource 作为源,它获取所需的社区子集。然后我需要让那个社区的所有人都参与进来。如果我使用 SqlDataSource 设置我的转发器,当我尝试在 Page_Load 事件中绑定它时会出现错误。
    • 啊,我想通了。感谢您的及时回复,它完全符合我的需要。 +1,并被接受。
    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 2012-06-20
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多