GridView单元格合并操作类
来源:互联网 发布:ko是什么意思网络用语 编辑:程序博客网 时间:2024/05/15 06:13
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
namespace Tools
{
/// <summary>
/// <remarks>GridView单元格行列合并操作类</remarks>
/// </summary>
public class GridViewHelper:System.Web.UI.Page
{
/// <summary>
/// GridView行合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
public static void GridViewRowSpan(GridView gridView,int colPos,int rowPosStart,int rowPosEnd)
{
try
{
GridViewRowSpanCheck(gridView, colPos, rowPosStart, rowPosEnd, false);
}
catch (Exception ex)
{
throw ex;
}
int newColPos = colPos - 1;
int newRowPosStart = rowPosStart - 1;
int newRowPosEnd = rowPosEnd - 1;
int rowSpanCount = newRowPosEnd - newRowPosStart + 1;
TableCell startCell = gridView.Rows[newRowPosStart].Cells[newColPos];
for (int i = newRowPosStart+1; i <= newRowPosEnd; i++)
{
gridView.Rows[i].Cells.RemoveAt(newColPos);
}
startCell.RowSpan = rowSpanCount;
}
/// <summary>
/// GridView行合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
public static void GridViewRowSpan(GridView gridView, int colPos, int rowPosStart, int rowPosEnd, bool isNeedCheckName)
{
try
{
GridViewRowSpanCheck(gridView, colPos, rowPosStart, rowPosEnd, isNeedCheckName);
}
catch (Exception ex)
{
throw ex;
}
GridViewRowSpan(gridView, colPos, rowPosStart, rowPosEnd);
}
/// <summary>
/// GridView行合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
private static void GridViewRowSpanCheck(GridView gridView, int colPos, int rowPosStart, int rowPosEnd, bool isNeedCheckName)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Rows.Count <= 0)
{
throw new Exception("待合并的GridView行不能为空!");
}
if (colPos <= 0)
{
throw new Exception("行合并所在的列不能小于1!");
}
if (colPos > gridView.Rows.Count)
{
throw new Exception("合并的结束位置不能超过GriwView总行数!");
}
if (rowPosStart <= 0)
{
throw new Exception("合并开始位置不能小于1!");
}
if (rowPosEnd > gridView.Rows.Count)
{
throw new Exception("合并的结束位置不能超过GriwView总行数!");
}
if (rowPosStart == rowPosEnd)
{
throw new Exception("合并的开始位置和结束位置不能相同!");
}
if (rowPosStart > rowPosEnd)
{
throw new Exception("合并的开始位置不能大于合并的结束位置!");
}
if (isNeedCheckName)
{
int newColPos = colPos - 1;
int newRowPosStart = rowPosStart - 1;
int newRowPosEnd = rowPosEnd - 1;
TableCell startCell = gridView.Rows[newRowPosStart].Cells[newColPos];
for (int i = newRowPosStart; i <= newRowPosEnd; i++)
{
TableCell curCell = gridView.Rows[i].Cells[newColPos];
if (startCell.Text != curCell.Text)
{
throw new Exception("需要进行合并的名称不一致");
}
}
}
}
/// <summary>
/// GridView列合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并开始位置,从1开始</param>
/// <param name="colPosEnd">列合并结束位置,从1开始</param>
public static void GridViewColSpan(GridView gridView,int rowPos, int colPosStart, int colPosEnd)
{
try
{
GridViewColSpanCheck(gridView, rowPos, colPosStart, colPosEnd, false);
}
catch (Exception ex)
{
throw ex;
}
int newRowPos = rowPos - 1;
int newColPosStart = colPosStart - 1;
int newColPosEnd = colPosEnd - 1;
int colSpanCount = newColPosEnd - newColPosStart + 1;
TableCell startCell = gridView.Rows[newRowPos].Cells[newColPosStart];
for (int i = newColPosStart + 1; i <= newColPosEnd; i++)
{
gridView.Rows[newRowPos].Cells.RemoveAt(newColPosStart+1);
}
startCell.ColumnSpan = colSpanCount;
}
/// <summary>
/// GridView列合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并开始位置,从1开始</param>
/// <param name="colPosEnd">列合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
public static void GridViewColSpan(GridView gridView, int rowPos, int colPosStart, int colPosEnd, bool isNeedCheckName)
{
try
{
GridViewColSpanCheck(gridView, rowPos, colPosStart, colPosEnd, isNeedCheckName);
}
catch (Exception ex)
{
throw ex;
}
GridViewColSpan(gridView, rowPos, colPosStart, colPosEnd);
}
/// <summary>
/// GridView列合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并的开始位置,从1开始</param>
/// <param name="colPosEnd">列合并的结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
private static void GridViewColSpanCheck(GridView gridView, int rowPos, int colPosStart, int colPosEnd, bool isNeedCheckName)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Columns.Count <= 0)
{
throw new Exception("待合并的GridView列不能为空!");
}
if (rowPos <= 0)
{
throw new Exception("列合并的开始行位置不能小于1!");
}
if (rowPos > gridView.Rows.Count)
{
throw new Exception("列合并的开始行位置不能超过GriwView总行数!");
}
if (colPosStart <= 0)
{
throw new Exception("列合并的开始单元格位置不能小于1!");
}
if (colPosStart > gridView.Columns.Count)
{
throw new Exception("列合并的开始单元格位置不能超过GriwView总列数!");
}
if (colPosEnd <= 0)
{
throw new Exception("列合并的结束单元格位置不能小于1!");
}
if (colPosEnd > gridView.Columns.Count)
{
throw new Exception("列合并的结束单元格位置不能超过GriwView总列数!");
}
if (colPosStart == colPosEnd)
{
throw new Exception("合并的开始位置和结束位置不能相同!");
}
if (colPosStart > colPosEnd)
{
throw new Exception("合并的开始位置不能大于合并的结束位置!");
}
if (isNeedCheckName)
{
int newRowPos = rowPos - 1;
int newColPosStart = colPosStart - 1;
int newColPosEnd = colPosEnd - 1;
TableCell startCell = gridView.Rows[newRowPos].Cells[newColPosStart];
for (int i = newColPosStart; i <= newColPosEnd; i++)
{
TableCell curCell = gridView.Rows[newRowPos].Cells[i];
if (startCell.Text != curCell.Text)
{
throw new Exception("需要进行合并的名称不一致");
}
}
}
}
/// <summary>
/// GridView单元格合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="left">单元格合并的左侧单元格,从1开始</param>
/// <param name="right">单元格合并的右侧单元格,从1开始</param>
/// <param name="top">单元格合并的顶部单元格,从1开始</param>
/// <param name="bottom">单元格合并的底部单元格,从1开始</param>
public static void GridViewCellSpan(GridView gridView, int left, int top, int right, int bottom)
{
try
{
GridViewCellSpanCheck(gridView, left, top, right, bottom);
}
catch (Exception ex)
{
throw ex;
}
for (int i = top; i <= bottom; i++)
{
GridViewColSpan(gridView, i, left, right);
}
GridViewRowSpan(gridView, left, top, bottom);
}
/// <summary>
/// GridView单元格合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="left">单元格合并的左侧单元格,从1开始</param>
/// <param name="right">单元格合并的右侧单元格,从1开始</param>
/// <param name="top">单元格合并的顶部单元格,从1开始</param>
/// <param name="bottom">单元格合并的底部单元格,从1开始</param>
private static void GridViewCellSpanCheck(GridView gridView, int left, int top, int right, int bottom)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Columns.Count <= 0)
{
throw new Exception("待合并的GridView列不能为空!");
}
if (left <= 0)
{
throw new Exception("单元格合并的左侧位置不能小于1!");
}
if (left > gridView.Columns.Count)
{
throw new Exception("单元格合并的左侧位置不能大于GriwView总列数!");
}
if (left > gridView.Columns.Count)
{
throw new Exception("单元格合并的左侧位置不能大于GriwView总列数!");
}
if (right <= 0)
{
throw new Exception("单元格合并的右侧位置不能小于1!");
}
if (right > gridView.Columns.Count)
{
throw new Exception("单元格合并的右侧位置不能大于GriwView总列数!");
}
if (right > gridView.Columns.Count)
{
throw new Exception("单元格合并的右侧位置不能大于GriwView总列数!");
}
if (left == right)
{
throw new Exception("单元格合并的左侧位置和右侧位置不能相同!");
}
if (left > right)
{
throw new Exception("单元格合并的左侧位置不能大于右侧位置!");
}
if (top <= 0)
{
throw new Exception("单元格合并的顶部位置不能小于1!");
}
if (top > gridView.Rows.Count)
{
throw new Exception("单元格合并的顶部位置不能大于GriwView总行数!");
}
if (top > gridView.Rows.Count)
{
throw new Exception("单元格合并的顶部位置不能大于GriwView总行数!");
}
if (bottom <= 0)
{
throw new Exception("单元格合并的底部位置不能小于1!");
}
if (bottom > gridView.Rows.Count)
{
throw new Exception("单元格合并的底部位置不能大于GriwView总行数!");
}
if (bottom > gridView.Rows.Count)
{
throw new Exception("单元格合并的底部位置不能大于GriwView总行数!");
}
if (top == bottom)
{
throw new Exception("单元格合并的顶部位置和底部位置不能相同!");
}
if (top > bottom)
{
throw new Exception("单元格合并的顶部位置不能大于底部位置!");
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
namespace Tools
{
/// <summary>
/// <remarks>GridView单元格行列合并操作类</remarks>
/// </summary>
public class GridViewHelper:System.Web.UI.Page
{
/// <summary>
/// GridView行合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
public static void GridViewRowSpan(GridView gridView,int colPos,int rowPosStart,int rowPosEnd)
{
try
{
GridViewRowSpanCheck(gridView, colPos, rowPosStart, rowPosEnd, false);
}
catch (Exception ex)
{
throw ex;
}
int newColPos = colPos - 1;
int newRowPosStart = rowPosStart - 1;
int newRowPosEnd = rowPosEnd - 1;
int rowSpanCount = newRowPosEnd - newRowPosStart + 1;
TableCell startCell = gridView.Rows[newRowPosStart].Cells[newColPos];
for (int i = newRowPosStart+1; i <= newRowPosEnd; i++)
{
gridView.Rows[i].Cells.RemoveAt(newColPos);
}
startCell.RowSpan = rowSpanCount;
}
/// <summary>
/// GridView行合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
public static void GridViewRowSpan(GridView gridView, int colPos, int rowPosStart, int rowPosEnd, bool isNeedCheckName)
{
try
{
GridViewRowSpanCheck(gridView, colPos, rowPosStart, rowPosEnd, isNeedCheckName);
}
catch (Exception ex)
{
throw ex;
}
GridViewRowSpan(gridView, colPos, rowPosStart, rowPosEnd);
}
/// <summary>
/// GridView行合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="colPos">行合并所在的列,从1开始</param>
/// <param name="rowPosStart">行合并开始位置,从1开始</param>
/// <param name="rowPosEnd">行合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
private static void GridViewRowSpanCheck(GridView gridView, int colPos, int rowPosStart, int rowPosEnd, bool isNeedCheckName)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Rows.Count <= 0)
{
throw new Exception("待合并的GridView行不能为空!");
}
if (colPos <= 0)
{
throw new Exception("行合并所在的列不能小于1!");
}
if (colPos > gridView.Rows.Count)
{
throw new Exception("合并的结束位置不能超过GriwView总行数!");
}
if (rowPosStart <= 0)
{
throw new Exception("合并开始位置不能小于1!");
}
if (rowPosEnd > gridView.Rows.Count)
{
throw new Exception("合并的结束位置不能超过GriwView总行数!");
}
if (rowPosStart == rowPosEnd)
{
throw new Exception("合并的开始位置和结束位置不能相同!");
}
if (rowPosStart > rowPosEnd)
{
throw new Exception("合并的开始位置不能大于合并的结束位置!");
}
if (isNeedCheckName)
{
int newColPos = colPos - 1;
int newRowPosStart = rowPosStart - 1;
int newRowPosEnd = rowPosEnd - 1;
TableCell startCell = gridView.Rows[newRowPosStart].Cells[newColPos];
for (int i = newRowPosStart; i <= newRowPosEnd; i++)
{
TableCell curCell = gridView.Rows[i].Cells[newColPos];
if (startCell.Text != curCell.Text)
{
throw new Exception("需要进行合并的名称不一致");
}
}
}
}
/// <summary>
/// GridView列合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并开始位置,从1开始</param>
/// <param name="colPosEnd">列合并结束位置,从1开始</param>
public static void GridViewColSpan(GridView gridView,int rowPos, int colPosStart, int colPosEnd)
{
try
{
GridViewColSpanCheck(gridView, rowPos, colPosStart, colPosEnd, false);
}
catch (Exception ex)
{
throw ex;
}
int newRowPos = rowPos - 1;
int newColPosStart = colPosStart - 1;
int newColPosEnd = colPosEnd - 1;
int colSpanCount = newColPosEnd - newColPosStart + 1;
TableCell startCell = gridView.Rows[newRowPos].Cells[newColPosStart];
for (int i = newColPosStart + 1; i <= newColPosEnd; i++)
{
gridView.Rows[newRowPos].Cells.RemoveAt(newColPosStart+1);
}
startCell.ColumnSpan = colSpanCount;
}
/// <summary>
/// GridView列合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并开始位置,从1开始</param>
/// <param name="colPosEnd">列合并结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
public static void GridViewColSpan(GridView gridView, int rowPos, int colPosStart, int colPosEnd, bool isNeedCheckName)
{
try
{
GridViewColSpanCheck(gridView, rowPos, colPosStart, colPosEnd, isNeedCheckName);
}
catch (Exception ex)
{
throw ex;
}
GridViewColSpan(gridView, rowPos, colPosStart, colPosEnd);
}
/// <summary>
/// GridView列合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="rowPos">列合并所在的行,从1开始</param>
/// <param name="colPosStart">列合并的开始位置,从1开始</param>
/// <param name="colPosEnd">列合并的结束位置,从1开始</param>
/// <param name="isNeedCheckName">是否检测待合并的单元格名称是否一致</param>
private static void GridViewColSpanCheck(GridView gridView, int rowPos, int colPosStart, int colPosEnd, bool isNeedCheckName)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Columns.Count <= 0)
{
throw new Exception("待合并的GridView列不能为空!");
}
if (rowPos <= 0)
{
throw new Exception("列合并的开始行位置不能小于1!");
}
if (rowPos > gridView.Rows.Count)
{
throw new Exception("列合并的开始行位置不能超过GriwView总行数!");
}
if (colPosStart <= 0)
{
throw new Exception("列合并的开始单元格位置不能小于1!");
}
if (colPosStart > gridView.Columns.Count)
{
throw new Exception("列合并的开始单元格位置不能超过GriwView总列数!");
}
if (colPosEnd <= 0)
{
throw new Exception("列合并的结束单元格位置不能小于1!");
}
if (colPosEnd > gridView.Columns.Count)
{
throw new Exception("列合并的结束单元格位置不能超过GriwView总列数!");
}
if (colPosStart == colPosEnd)
{
throw new Exception("合并的开始位置和结束位置不能相同!");
}
if (colPosStart > colPosEnd)
{
throw new Exception("合并的开始位置不能大于合并的结束位置!");
}
if (isNeedCheckName)
{
int newRowPos = rowPos - 1;
int newColPosStart = colPosStart - 1;
int newColPosEnd = colPosEnd - 1;
TableCell startCell = gridView.Rows[newRowPos].Cells[newColPosStart];
for (int i = newColPosStart; i <= newColPosEnd; i++)
{
TableCell curCell = gridView.Rows[newRowPos].Cells[i];
if (startCell.Text != curCell.Text)
{
throw new Exception("需要进行合并的名称不一致");
}
}
}
}
/// <summary>
/// GridView单元格合并
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="left">单元格合并的左侧单元格,从1开始</param>
/// <param name="right">单元格合并的右侧单元格,从1开始</param>
/// <param name="top">单元格合并的顶部单元格,从1开始</param>
/// <param name="bottom">单元格合并的底部单元格,从1开始</param>
public static void GridViewCellSpan(GridView gridView, int left, int top, int right, int bottom)
{
try
{
GridViewCellSpanCheck(gridView, left, top, right, bottom);
}
catch (Exception ex)
{
throw ex;
}
for (int i = top; i <= bottom; i++)
{
GridViewColSpan(gridView, i, left, right);
}
GridViewRowSpan(gridView, left, top, bottom);
}
/// <summary>
/// GridView单元格合并检验
/// </summary>
/// <param name="gridView">GridView控件</param>
/// <param name="left">单元格合并的左侧单元格,从1开始</param>
/// <param name="right">单元格合并的右侧单元格,从1开始</param>
/// <param name="top">单元格合并的顶部单元格,从1开始</param>
/// <param name="bottom">单元格合并的底部单元格,从1开始</param>
private static void GridViewCellSpanCheck(GridView gridView, int left, int top, int right, int bottom)
{
if (gridView == null)
{
throw new Exception("待合并的GirdView不能为Null!");
}
if (gridView.Columns.Count <= 0)
{
throw new Exception("待合并的GridView列不能为空!");
}
if (left <= 0)
{
throw new Exception("单元格合并的左侧位置不能小于1!");
}
if (left > gridView.Columns.Count)
{
throw new Exception("单元格合并的左侧位置不能大于GriwView总列数!");
}
if (left > gridView.Columns.Count)
{
throw new Exception("单元格合并的左侧位置不能大于GriwView总列数!");
}
if (right <= 0)
{
throw new Exception("单元格合并的右侧位置不能小于1!");
}
if (right > gridView.Columns.Count)
{
throw new Exception("单元格合并的右侧位置不能大于GriwView总列数!");
}
if (right > gridView.Columns.Count)
{
throw new Exception("单元格合并的右侧位置不能大于GriwView总列数!");
}
if (left == right)
{
throw new Exception("单元格合并的左侧位置和右侧位置不能相同!");
}
if (left > right)
{
throw new Exception("单元格合并的左侧位置不能大于右侧位置!");
}
if (top <= 0)
{
throw new Exception("单元格合并的顶部位置不能小于1!");
}
if (top > gridView.Rows.Count)
{
throw new Exception("单元格合并的顶部位置不能大于GriwView总行数!");
}
if (top > gridView.Rows.Count)
{
throw new Exception("单元格合并的顶部位置不能大于GriwView总行数!");
}
if (bottom <= 0)
{
throw new Exception("单元格合并的底部位置不能小于1!");
}
if (bottom > gridView.Rows.Count)
{
throw new Exception("单元格合并的底部位置不能大于GriwView总行数!");
}
if (bottom > gridView.Rows.Count)
{
throw new Exception("单元格合并的底部位置不能大于GriwView总行数!");
}
if (top == bottom)
{
throw new Exception("单元格合并的顶部位置和底部位置不能相同!");
}
if (top > bottom)
{
throw new Exception("单元格合并的顶部位置不能大于底部位置!");
}
}
}
}
0 0
- GridView单元格合并操作类
- 合并GridView中的单元格
- GridView合并单元格
- GridView合并表头单元格
- gridview合并单元格
- 合并GridView 的单元格
- 合并Gridview单元格
- 合并GridView中的单元格
- GridView合并单元格
- GridView 单元格的合并
- GridView合并单元格
- 合并 GridView 的单元格
- GridView 合并单元格
- 合并GridView中的单元格!
- 合并 GridView 的单元格
- C# GridView单元格合并.
- gridview合并单元格
- gridview合并单元格
- PHP的魔术方法
- 详细的java(GC)原理
- 苹果IOS 加急审核
- iOS OpenCV配置、使用
- 【Hibernate3】(4)关联映射(一)
- GridView单元格合并操作类
- [转载]4412开发板关于Linux QT和Android操作系统的烧写问题总结
- PostgreSQL学习手册(角色和权限)
- Linux消息队列整理
- Linux上的free命令详解
- <mvc:annotation-driven/>作用
- 那些需要你知道的iOS开发相关知识(二)
- java 打jar包和运行jar
- 风暴——泰兰德使用心得