具有合并行的 ASP.net 网格分页

Posted

技术标签:

【中文标题】具有合并行的 ASP.net 网格分页【英文标题】:ASP.net Grid paging with merged rows 【发布时间】:2012-04-12 17:58:41 【问题描述】:

我目前正在使用 GridView 来显示表格数据。我需要合并第一列中具有相同值的单元格。目前我在PreRender 事件中有代码为我设置RowSpan 属性,它工作正常。

问题是我不能使用分页,因为页面会在第一个字段相等的部分中间拆分。

我希望分页的记录计数为每个合并的行计数一个,而不是每个子行一个。

GridView 或其他一些 jQuery 网格可以做到这一点吗?

【问题讨论】:

嗨,安德鲁,您有解决方案吗?合并行后,我在 Asp.net 中的 Gridview 面临同样的问题。 这个问题需要再次关注。 【参考方案1】:

不是在 UI 级别处理合并,而是以您可以直接绑定到它的方式准备数据源吗?

基本上创建一个包含数据的视图模型,格式更易于绑定。

GridView.DataSource() = vmAlreadyMergedAndReadtToGoOBject
GridView.DataBind();

我不确定您从哪里获取数据,但您不能根据从源(数据库)返回的结果集以编程方式构建绑定到网格的对象吗? 然后,如果您通过组合相同的行值来构建该对象,则可以将网格绑定到它...不完全清楚您在做什么,但这是首先想到的....

【讨论】:

我不知道在数据源中合并行的方法 - 你能详细说明一下吗?【参考方案2】:
for (i = PagSize; i <= dt.Rows.Count; i++)

    Curr = dt.Rows[i - 1]["Brand"].ToString();
    if (i < dt.Rows.Count)
    
        Nxt = dt.Rows[i]["Brand"].ToString();
        diff = dt.Rows.Count - i;
        if (Curr != Nxt)
        
            DctPaging.Add(PageNum, i);
            PageNum = PageNum + 1;
            i = i + PagSize;
            if (i >= dt.Rows.Count)
            
                DctPaging.Add(PageNum, i);
                break;
            
        
    

参考Click Here

【讨论】:

以上是关于具有合并行的 ASP.net 网格分页的主要内容,如果未能解决你的问题,请参考以下文章

使用 ASP.Net MVC 对网格进行分页和排序

ASP.NET 网格视图与列表视图

ag 网格服务器端分页“当网格位于绘制行的中间时,无法让网格绘制行”

ASP.NET C# GridView 合并行列

编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器

ASP.NET C# 如何合并DataTable中的重复数据(做数据整合)