• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Asp.net_Table控件の单元格纵向合并示例

    业务需要,动态生成表,同一列中数据相同的单元格需要合并。
    解决方案,创建Table控件处理类,代码如下:

    复制代码 代码如下:

    /// summary>表格控件相关操作类
    /// /summary>
    public static class aspTable
    {
    /// summary>合并行
    /// /summary>
    /// remarks>版权信息:http://www.qqextra.com,http://t.qq.com/ls_man,http://blog.csdn.net/ls_man 2013-06-21 14:20:36/remarks>
    /// param name="tbl">Table/param>
    /// param name="startRow">起始行/param>
    /// param name="endRow">结束行/param>
    /// param name="colIndex">要合并的列索引/param>
    public static void SetRowSpan(Table tbl, int startRow, int endRow, int colIndex)
    {
    int countRowSpan = 0;
    int spanRow = startRow;
    string spanText = tbl.Rows[startRow].Cells[colIndex].Text;
    for (int rowIndex = startRow; rowIndex = endRow; rowIndex++)
    {
    string currentText = tbl.Rows[rowIndex].Cells[colIndex].Text;
    //内容是否相同
    if (currentText == spanText)
    {
    countRowSpan++;
    //移除被合并的单元格
    if (rowIndex != spanRow)
    {
    tbl.Rows[rowIndex].Cells.RemoveAt(colIndex);
    }
    }
    else
    {
    //合并
    tbl.Rows[spanRow].Cells[colIndex].RowSpan = countRowSpan;
    //从此行再向下比较(重置)
    countRowSpan = 0;
    spanRow = rowIndex--;
    spanText = currentText;
    }
    }
    //合并最后一项
    tbl.Rows[spanRow].Cells[colIndex].RowSpan = countRowSpan;
    }
    /// summary>合并行,支持多列
    /// /summary>
    /// remarks>SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">版权信息:http://www.qqextra.com,http://t.qq.com/ls_man,http://blog.csdn.net/ls_man/SPAN>SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif"> 2013-06-21 15:24:34/remarks>/SPAN>
    /// param name="tbl">Table/param>
    /// param name="startRow">起始行/param>
    /// param name="endRow">结束行/param>
    /// param name="colIndex">要合并的列索引/param>
    public static void SetRowSpans(Table tbl, int startRow, int endRow, params int[] colIndexs)
    {
    ArrayList al = new ArrayList(colIndexs);
    al.Sort();
    for (int i = al.Count - 1; i >= 0; i--)
    {
    SetRowSpan(tbl, startRow, endRow, (int)al[i]);
    }
    }
    }

    需要注意的几点,起始行一般设置为1,因为0是标题行;结束行一般设置为Table的总行数-1即可(最后一行)。

    您可能感兴趣的文章:
    • datalist,Repeater和Gridview的区别分析
    • asp.net中让Repeater和GridView支持DataPager分页
    • repeater、gridview 在绑定时判断判断显示不同的行样式或文本
    • ASP.NET MVC4之js css文件合并功能(3)
    • Asp.net程序优化js、css实现合并与压缩的方法
    • ASP.NET GridView 实现课程表显示(动态合并单元格)实现步骤
    • asp.net中GridView和DataGrid相同列合并实现代码
    • asp.net中rdlc 合并行的方法
    • asp.net 合并GridView中某列相同信息的行(单元格)
    • ASP.NET中GridView和Repeater重复数据如何合并
    上一篇:asp.net利用NamingContainer属性获取GridView行号的方法
    下一篇:Asp.net第三方控件ComboBox组合框介绍
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Asp.net_Table控件の单元格纵向合并示例 Asp.net,Table,控件,の,单元格,