【问题标题】:Show grouped column in gridview在gridview中显示分组列
【发布时间】:2014-02-19 11:53:24
【问题描述】:

我在从数据库查询后在我的 gridview 中显示以下结果。

Canada           Ontario      Cambridge
Canada           Ontario      Halton
Canada           Ontario      Hamilton
Canada           Ontario      Milton
United Kingdom    Wales       Bangor
United Kingdom    Wales       Cardiff
United Kingdom    Wales       New Port
United Kingdom    Wales       Swansea
United States     CA          Los Angeles
United States     CA          Merced
United States     CA          Morgan Hill
United States     CA          San Francisco

我在 gridview 上工作过,但我怎么可能在 gridview 中显示这样的结果

Canada           Ontario     Cambridge
                             Halton
                             Hamilton
                             Milton
United Kingdom    Wales      Bangor
                             Cardiff
                             New Port
                             Swansea
United States     CA         Los Angeles
                             Merced
                             Morgan Hill
                             San Francisco

对此有何建议?

【问题讨论】:

标签: c# asp.net .net gridview


【解决方案1】:

This is the best link which can help you

public class GridDecorator
{
public static void MergeRows(GridView gridView)
{
    for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
    {
        GridViewRow row = gridView.Rows[rowIndex];
        GridViewRow previousRow = gridView.Rows[rowIndex + 1];

        for (int i = 0; i < row.Cells.Count; i++)
        {
            if (row.Cells[i].Text == previousRow.Cells[i].Text)
            {
                row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 : 
                                       previousRow.Cells[i].RowSpan + 1;
                previousRow.Cells[i].Visible = false;
            }
        }
    }
}

}

protected void gridView_PreRender(object sender, EventArgs e)
{
    GridDecorator.MergeRows(gridView);
}

【讨论】:

  • 这是一个不错的解决方案。它如何通过单击标题进行排序?
  • @PatrickHofman 我提供的链接将为您提供有关如何合并单元格的算法的描述
  • @vicky 如果这个答案/解决方案对您有帮助,那么不要忘记接受它作为答案
【解决方案2】:

您可以通过对数据库中的结果进行分组来做到这一点(通过使用 laglead 函数与上一行进行比较。您也可以为此使用 Infragistics UltraGrid 等自定义控件,这对我们来说很好用,但这是付费解决方案。

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 2016-07-08
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    相关资源
    最近更新 更多