如何绑定中继器与多列分组

本文关键字:中继器 何绑定 绑定 | 更新日期: 2023-09-27 18:13:40

我需要将数据表绑定到中继器。我的数据表如下所示:

Name    Grade   Subject     Year    Quarter Mark
A       A1      Computer    2013    Q1      50
A       A1      Computer    2013    Q2      70
A       A1      Computer    2013    Q3      30
A       A1      Computer    2013    Q4      95

谁能告诉我如何将以上数据与分组绑定?我还需要根据分组的总马克。请帮帮我。

如何绑定中继器与多列分组

 <asp:Repeater ID="Repeater1" runat="server"
    OnItemDataBound="Repeater1_databinding">
            <HeaderTemplate>
                <table id="masterDataTable" class="reportTable list issues" width="100%">
                    <thead>
                        <tr>
                            <asp:Literal ID="literalHeader" runat="server"></asp:Literal>
                        </tr>
                    </thead>
                    <tbody>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <asp:Literal ID="literals" runat="server"></asp:Literal>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </tbody> </table>
            </FooterTemplate>
        </asp:Repeater>
<input id="hdnColumnName" runat="server" clientidmode="Static" type="hidden" />
<input id="hdnColumnOrder" runat="server" clientidmode="Static" type="hidden" />

      // javascript Function
     <script type="text/javascript">
     $(document).ready(function () {
    $('#ddlReport').removeClass('required');
    $('.sort').click(function () {
        $('#hdnColumnName').val($(this).text());
        $('#hdnColumnOrder').val($(this).attr('class'));
        $(this).toggleClass("desc asc");
        $("#lnkSort").click();
    });
});

    // Bind repeater
   DataTable dt = objReport.GetCustomRecord();
    fn = new List<string>();
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        if (dt.Columns[i].ColumnName != "Maxcount" )
        {
            fn.Add(dt.Columns[i].ColumnName);
        }
    }
    Repeater1.DataSource = dt;
    Repeater1.DataBind();

       protected void Repeater1_databinding(object sender,   RepeaterItemEventArgs e)
    {
   if (e.Item.ItemType == ListItemType.Header)
   {
    if (e.Item.FindControl("literalHeader") != null)
    {
        StringBuilder sb = new StringBuilder();
        Literal li = e.Item.FindControl("literalHeader") as Literal;
        fieldName().ForEach(delegate(string fn)
        {
            if (hdnColumnName.Value != fn.ToString())
            {
                sb.Append("<th width='"10%'"> <a id='"btnCustomerName'" class='"sort desc'" onclick='"btnSorts_onclick()'" style='"cursor:pointer;text-decoration: none !important;'" >"
                    + fn.ToString() + "</a></th>");
            }
            else
            {
                if (hdnColumnOrder.Value == "sort asc")
                    sb.Append("<th width='"10%'"> <a id='"btnCustomerName'" class='"sort desc'"  onclick='"btnSorts_onclick()'" style='"cursor:pointer;text-decoration: none !important;'" >"
                   + fn.ToString() + "</a></th>");
                else
                    sb.Append("<th width='"10%'"> <a id='"btnCustomerName'" class='"sort asc'" onclick='"btnSorts_onclick()'" style='"cursor:pointer;text-decoration: none !important;'">"
                                               + fn.ToString() + "</a></th>");
            }
        });
        li.Text = sb.ToString();
    }
}
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
    if (e.Item.FindControl("literals") != null)
    {
        DataRowView drv = (DataRowView)e.Item.DataItem;
        Literal li = e.Item.FindControl("literals") as Literal;
        StringBuilder sb = new StringBuilder();
        fieldName().ForEach(delegate(string fn)
        {
            sb.Append("<td>" + drv[fn.ToString()] + "</td>");
        });
        li.Text = sb.ToString();
    }
     }
   }