GRIDVIEW多行多列合併儲存格(合并列)

來源:互聯網
上載者:User

標籤:

GitHub項目地址:https://github.com/mingceng/merge-gridviewcell

兩篇文章:  GridView多行多列合併儲存格(完整代碼和例子)和 GridView多行多列合併儲存格(指定列合并)。今天繼續再添加一些功能,首先看:

左邊是未經處理資料的顯示,右邊是應用合并列之後的效果。

可以看到,二級指標有兩列,有的行中兩列的內容一樣,有的則不一樣,如果實現如右圖所示,看起來效果會更好一些。下面就著手實現這個功能,我的實現原理很簡單,就是遍曆GridView的行和遍曆行中的儲存格,如果儲存格的前一列和當前列的內容相同就合并這兩列。下面是具體實現的代碼,上面有注釋,應該很容易理解。

   1:          /// <summary>
   2:          /// 和並列
   3:          /// </summary>
   4:          /// <param name="gv">要合并的GridView</param>
   5:          /// <param name="startCol">開始列的索引</param>
   6:          /// <param name="endCol">結束列的索引</param>
   7:          /// <param name="containHeader">是否合并表頭,預設不合并</param>
   8:          public static void MergeColumn(GridView gv, int startCol, int endCol, bool containHeader = false)
   9:          {
  10:              if (containHeader)
  11:              {
  12:                  BLRowCells(gv.HeaderRow, startCol, endCol);
  13:              }
  14:              foreach (GridViewRow row in gv.Rows)
  15:              {
  16:                  BLRowCells(row, startCol, endCol);
  17:              }
  18:          }
  19:   
  20:          /// <summary>
  21:          /// 遍曆GridViewRow中的儲存格
  22:          /// </summary>
  23:          /// <param name="row">要遍曆的行</param>
  24:          /// <param name="start">開始索引</param>
  25:          /// <param name="end">結束索引</param>
  26:          private static void BLRowCells(GridViewRow row, int start, int end)
  27:          {
  28:              //從開始索引的下一列開始
  29:              for (int i = start + 1; i <= end; i++)
  30:              {
  31:                  //目前的儲存格
  32:                  TableCell currCell = row.Cells[i];
  33:                  //前一個儲存格
  34:                  TableCell prevCell = row.Cells[i - 1];
  35:                  if (!string.IsNullOrEmpty(currCell.Text) && !string.IsNullOrEmpty(prevCell.Text))
  36:                  {
  37:                      if (currCell.Text == prevCell.Text)
  38:                      {
  39:                          currCell.ColumnSpan = prevCell.ColumnSpan < 1 ? 2 : prevCell.ColumnSpan + 1;
  40:                          prevCell.Visible = false;
  41:                      }
  42:                  }
  43:              }
  44:          }

本篇文章作為前兩篇文章的續文,內容相對來說簡單一些,不過有需要合并GridView儲存格的朋友,希望這三篇文章能夠起到協助作用!

GitHub項目地址:https://github.com/mingceng/merge-gridviewcell

出處:http://www.cnblogs.com/nianming/

GRIDVIEW多行多列合併儲存格(合并列)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.