首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

gridview 通过objectdatasource绑定到datatable,datatable中有一个合计行,怎么让该行不参与排序

2013-11-05 
gridview 通过objectdatasource绑定到datatable,datatable中有一个合计行,如何让该行不参与排序gridview

gridview 通过objectdatasource绑定到datatable,datatable中有一个合计行,如何让该行不参与排序
gridview 通过objectdatasource绑定到datatable,datatable中有一个合计行,如何让该行不参与排序
[解决办法]
页脚数据不要放在DataTable中,应该单独将合计行的数据插入页脚。

你可以自己从GridView继承,并开发成自己的GridView控件。
[解决办法]

引用:
gridview 通过objectdatasource绑定到datatable,datatable中有一个合计行,如何让该行不参与排序


让它排序也可以呀,就想办法让它排在最后就可以啦,不知道你是什么写的sql语句?

这样做排序
order by case when col1 is null when 1 else 0 end,col1 
col1为排序列
[解决办法]
将GridView的ShowFooter属性设置为true,将OnDataBound属性设置为事件处理的函数名,例如:
    <asp:GridView ID="gvProd" runat="server" DataSourceID="sdsProd" AllowPaging="true" PageSize="20"
            OnDataBound="CountTotalPrice" AutoGenerateColumns="false" ShowFooter="true">
        <HeaderStyle BackColor="Black" ForeColor="White" Font-Bold="true" />
        <FooterStyle BackColor="Black" ForeColor="White" Font-Bold="true" />
        <Columns>
            <asp:BoundField DataField="ProductID" HeaderText="ID" />
            <asp:BoundField DataField="ProductName" HeaderText="ProductName" />
            <asp:BoundField DataField="UnitPrice" HeaderText="Price" />
            <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" />
        </Columns>
    </asp:GridView>

当gvProd所有行数据绑定完毕后调用CountTotalPrice函数,CountTotalPrice函数代码如下
    protected void CountTotalPrice(object sender, EventArgs e)
    {
        decimal totalValue = 0;

        foreach (GridViewRow row in gvProd.Rows)
        {
            decimal price = Decimal.Parse(row.Cells[2].Text);
            int count = int.Parse(row.Cells[3].Text);
            totalValue += price * count;
        }

        GridViewRow footer = gvProd.FooterRow;
        footer.Cells[0].ColumnSpan = 3;
        footer.Cells[0].HorizontalAlign = HorizontalAlign.Center;

        footer.Cells.RemoveAt(1);
        footer.Cells.RemoveAt(2);

        footer.Cells[0].Text = "Total value (on this page): " + totalValue.ToString();
    }

热点排行