GridView 合并行、列

#region 合并单元格 合并某一行的所有列

  ///  <summary> 

  ///  合并GridView中某行相同信息的行(单元格)

  ///  </summary> 

  ///  <param  name="GridView1">GridView对象</param> 

  ///  <param  name="cellNum">需要合并的行</param>

  public static void GroupRow(GridView GridView1, int rows)

  {

  TableCell oldTc = GridView1.Rows[rows].Cells[0];

  for (int i = 1; i < GridView1.Rows[rows].Cells.Count; i++)

  {

  TableCell tc = GridView1.Rows[rows].Cells[i];  //Cells[0]就是你要合并的列

  if (oldTc.Text == tc.Text)

  {

  tc.Visible = false;

  if (oldTc.ColumnSpan == 0)

  {

  oldTc.ColumnSpan = 1;

  }

  oldTc.ColumnSpan++;

  oldTc.VerticalAlign = VerticalAlign.Middle;

        }

        else

        {

          oldTc = tc;

        }

      }

    }

    #endregion

    #region 合并单元格 合并一行中的几列

    /// <summary>

    /// 合并单元格 合并一行中的几列

    /// </summary>

    /// <param name="GridView1">GridView ID</param>

    /// <param name="rows">行</param>

    /// <param name="sCol">开始列</param>

    /// <param name="eCol">结束列</param>

    public static void GroupRow(GridView GridView1, int rows,int sCol,int eCol)

    {

       TableCell oldTc = GridView1.Rows[rows].Cells[sCol];

      for (int i = 1; i < eCol - sCol; i++)

      {

        TableCell tc = GridView1.Rows[rows].Cells[i + sCol];  //Cells[0]就是你要合并的列

        tc.Visible = false;

        if (oldTc.ColumnSpan == 0)

        {

          oldTc.ColumnSpan = 1;

        }

        oldTc.ColumnSpan++;

        oldTc.VerticalAlign = VerticalAlign.Middle;

      }

    }

    #endregion

    #region 合并单元格 合并某一列所有行

    /// <summary>

    /// 合并GridView中某列相同信息的行(单元格)

    /// </summary>

    /// <param name="GridView1"></param>

    /// <param name="cellNum"></param>

    public static void GroupCol(GridView GridView1, int cols)

    {

      if (GridView1.Rows.Count < 1 || cols > GridView1.Rows[0].Cells.Count - 1)

      {

        return;

      }

      TableCell oldTc = GridView1.Rows[0].Cells[cols];

      for (int i = 1; i < GridView1.Rows.Count; i++)

      {

        TableCell tc = GridView1.Rows[i].Cells[cols];

        if (oldTc.Text == tc.Text)

        {

          tc.Visible = false;

          if (oldTc.RowSpan == 0)

          {

            oldTc.RowSpan = 1;

          }

          oldTc.RowSpan++;

          oldTc.VerticalAlign = VerticalAlign.Middle;

        }

        else

        {

          oldTc = tc;

        }

      }

    }

    #endregion

    #region 合并单元格 合并某一列中的某些行

    /// <summary>

    /// 合并单元格 合并某一列中的某些行

    /// </summary>

    /// <param name="GridView1">GridView ID</param>

    /// <param name="cellNum">列</param>

    /// <param name="sRow">开始行</param>

    /// <param name="eRow">结束列</param>

    public static void GroupCol(GridView GridView1, int cols,int sRow,int eRow)

    {

      if (GridView1.Rows.Count < 1 || cols > GridView1.Columns.Count - 1)

      {

        return;

      }

      TableCell oldTc = GridView1.Rows[sRow].Cells[cols];

      for (int i = 1; i < eRow - sRow; i++)

      {

        TableCell tc = GridView1.Rows[sRow + i].Cells[cols]; 

        tc.Visible = false;

        if (oldTc.RowSpan == 0)

        {

          oldTc.RowSpan = 1;

        }

        oldTc.RowSpan++;

        oldTc.VerticalAlign = VerticalAlign.Middle;

      }

    }

    #endregion

原文地址:https://www.cnblogs.com/zgjin/p/8159286.html

时间: 2024-10-12 06:15:33

GridView 合并行、列的相关文章

ext表单合并行

在js里加入方法 /*** 合并Grid的数据列* @param grid {Ext.Grid.Panel} 需要合并的Grid* @param colIndexArray {Array} 需要合并列的Index(序号)数组:从0开始计数,序号也包含.* @param isAllSome {Boolean} 是否2个tr的colIndexArray必须完成一样才能进行合并.true:完成一样:false:不完全一样*/function mergeGrid(grid, colIndexArray,

ExtJs4grid合并行

在做项目的时候,要求多行的同列数据相同进行合并,ExtJs4并没有原生的支持,网上有些方法可以供使用,它可以将我们传入的gird进行指定列相同数据行进行合并,记录如下: /**合并行*grid被格式化的表格*cols要合并的列,数组类型,如[1,2] 合并第1列和第2列*/var mergeCells = function(grid,cols){ var arrayTr=document.getElementById(grid.getId()+"-body").getElementsB

gridview 合并列

//gridview 相同列合并 private void GroupRows(GridView grv) { string[] drs = { "ConferenceStartDate", "ddd" }; int num = 1; for (int j = num - 1; j < grv.Rows.Count - 1; j++) //循环行 { int r = 1; num = 1; GridViewRow gvr = grv.Rows[j];//前一行

【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行

Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Editplus 删除一行: Shift+Alt+Delete 直接删除当前行, 或:shift+Delete也成.移动一行到上一行/下一行: alt+shift+向上键(向下键)--------------------------------------------------------------

sed行处理详解 :交换行,合并行,删除行

sed行处理详解(交换行,合并行,删除行 多行合并一行:  cat xai 303728 303778 304175 304176 304261 304470 awk '{if(NR%2==0){printf $0 "\n"}else{printf "%s:",$0}}' xai  303728:303778 304175:304176 304261:304470  sed 'N;s/\n/ :/' xai  303728 :303778 304175 :30417

Reapter合并行

html文件: <asp:Repeater ID="rptEmployee" runat="server"> <HeaderTemplate> <table border="1" cellpadding="0" cellspacing="1"><tr><td>省份</td><td>城市</td></tr&g

Devexpress GridView增加CheckBox列

参考DEV官网代码做了一个增加checkbox列效果: #region 方法:设置GridView数据绑定        public void GridDataBind()        {            dt = dbHelper.Fill(cmdStr);                     // 填充DataTable            dt.Columns.Add("Check", typeof(bool));  // 增加个CheckBox列        

ASP.NET 为GridView添加序号列,且支持分页连续累计显示

为GridView添加序号列,且支持分页连续累计显示,废话不多说,直接上代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T

mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行)

数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一种展现如图----[多行变一列](合并后的数据在同一列上): sql如下: select name ,group_concat(sore Separator ';') as score from stu group by name 第二种展现如图----[多行变多列](合并后的数据在不同列上): sql如下: SELECT name , MAX(CASE type WHEN '数学' THEN

GridView动态添加列并判断绑定数据DataTable的列类型控制展示内容

此篇随笔是2013年根据项目需求开发记录的,不一定符合大众口味,只需了解开发思路,毕竟解决方案多种多样. 下面简单说说需求点吧: (1)通过下拉列表可以选择一个DataSet(数据集),一个DataSet存在可以互相关联的多个DataTable(数据表格),DataTable数据来源于数据库视图:SQL语句关联比较复杂 (2)一个DataTable(数据表格)存在多个可供选择查询显示的Column(列),支持动态组合 (3)Column(列)同时支持作为查询条件进行并运算 先看效果吧,免得待会看