ASP.NET- 合并HTML的表格相同项单元格

  我对控件的依懒是比较少的。有几个控件我比较喜欢用,例如REPEATER显示列表的控件,能提供很大的方便。

  使用REPEATER有一个比较方便的功能是通过几句代码就实现了相同项合并单元格合并,这个虽然平时比较少用到,可是有时候客户或者经理比较刁钻的时候,就感觉这个真是好啊!

  今天要用AJAX实现一个效果的时候,REPEATER列表控件就没法派上用场,这时我得想办法,根据HTML的一些规律来实现表格相同项的单元格合并。

  折腾,终算把效果实现了。备记在这里。

ERP_Reports reprots = new ERP_Reports();
            DataTable dtXSSJFX = reprots.GetXSSJFX_DX(txtSDate.Text, txtEDate.Text);//获得销售数据分析报表
            if (dtXSSJFX.Rows.Count > 0)
            {
                StringBuilder sb = new StringBuilder();
                int rowsIndex = 1;
                for (int i = 0; i < dtXSSJFX.Rows.Count; i++)
                {

                    if ((i + 1) != dtXSSJFX.Rows.Count)
                    {
                        if (dtXSSJFX.Rows[i]["dlmc"].ToString() == dtXSSJFX.Rows[i + 1]["dlmc"].ToString())
                        {
                            rowsIndex++;
                        }
                        else
                        {
                            sb.AppendLine("<tr style=\"line-height:24px\" onmouseout=\"this.style.backgroundColor=backupcolor\" onmouseover=\"this.backupcolor=this.style.backgroundColor;this.style.backgroundColor=‘#F1F6FF‘\">");
                            sb.AppendFormat("     <td rowspan=\"{0}\" style=\"text-align: left; width: 100px; \">{1}</td>", rowsIndex, dtXSSJFX.Rows[i]["dlmc"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["jjmc"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["sl_jm"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["je_jm"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["zb_jm"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["sl_zy"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["je_zy"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["zb_zy"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["sl_hj"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["je_hj"].ToString());
                            sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex]["zb_hj"].ToString());
                            sb.AppendLine("</tr>");

                            for (int j = 1; j < rowsIndex; j++)
                            {
                                sb.AppendLine("<tr style=\"line-height:24px\" onmouseout=\"this.style.backgroundColor=backupcolor\" onmouseover=\"this.backupcolor=this.style.backgroundColor;this.style.backgroundColor=‘#F1F6FF‘\">");
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["jjmc"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["sl_jm"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["je_jm"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["zb_jm"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["sl_zy"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["je_zy"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["zb_zy"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["sl_hj"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["je_hj"].ToString());
                                sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + 1 - rowsIndex + j]["zb_hj"].ToString());
                                sb.AppendLine("</tr>");
                            }
                            rowsIndex = 1;
                        }
                    }
                    else
                    {
                        sb.AppendLine("<tr style=\"line-height:24px\" onmouseout=\"this.style.backgroundColor=backupcolor\" onmouseover=\"this.backupcolor=this.style.backgroundColor;this.style.backgroundColor=‘#F1F6FF‘\">");
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["dlmc"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["jjmc"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["sl_jm"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["je_jm"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["zb_jm"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["sl_zy"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["je_zy"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["zb_zy"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["sl_hj"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["je_hj"].ToString());
                        sb.AppendFormat("     <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - 1]["zb_hj"].ToString());
                        sb.AppendLine("</tr>");
                    }

                }
                litHTMLS.Text = sb.ToString();

  

时间: 2024-10-26 14:19:22

ASP.NET- 合并HTML的表格相同项单元格的相关文章

Swift - 给表格添加移动单元格功能(拖动行)

1,下面的样例是给表格UITableView添加单元格移动功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,可以看到单元格后面出现拖动按钮 (3)鼠标按住拖动按钮,可以拖动单元格到任意位置 (4)拖动完毕后,还会触发TabelView对应的代理事件 2,效果图如下:   3,代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

控制extsj4.1 gridpanel表格行或者单元格的编辑

情境描述: 如上图是一个可编辑的gridpanel表格,现在需要做的是让第一行不能编辑,第二行可以编辑,或者这两行中一行的任意一个表格可编辑,另一行的该表格不可编辑. 这个问题其实就是控制单元格的编辑,有两种实现方式. 方式1,在CellEditing插件的beforeedit事件中控制,看一个代码截图 定义一个二维数组,对应表格的单元格,如果想让哪个单元格不可编辑,就在数组中对应的值为false,然后在beforeedit事件中return该数组的值,当然实际开发中可以灵活生成editable

Excel表格如何保护单元格不被修改

Excel如何保护单元格不被修改  有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起来试一试如何保护Excel单元格不被修改,步骤如下: 1.一般对于一个表格,标题的内容是不允许被修改,那么我们就开始将下面这个表格的标题区保护起来,但在选择时请大家注意,不要选择标题区,而应该用鼠标将用户编辑区选中.如图1所示: 2.点击“格式”菜单→“单元格→保护”标签,将窗口中的“锁定”复选框取

WebDriver获得表格里所有单元格的文本

方法为: 1. 得到表格中所有的tr,存到list到中 2.对tr进行循环,根据当前的tr,得到当前所有td的集合存到list当中 3.循环中所有td里的文本 package com.example.tests; import static org.junit.Assert.*; import java.util.*; import org.junit.*; import org.openqa.selenium.*; import org.openqa.selenium.ie.InternetE

NX二次开发-UFUN工程图表格注释设置单元格首选项UF_TABNOT_set_cell_prefs

1 NX9+VS2012 2 3 4 #include <uf.h> 5 #include <uf_tabnot.h> 6 #include <NXOpen/Part.hxx> 7 #include <NXOpen/PartCollection.hxx> 8 #include <NXOpen/Session.hxx> 9 #include <NXOpen/Annotations_TableSectionCollection.hxx>

使用JS遍历Table表格中所有单元格内容

通过JS去遍历Table的所有单元格中的内容,可以用如下JS代码实现:使用该方法时必须为Table表格设置唯一的id属性. function GetInfoFromTable() { var tableInfo = ""; var tableObj = document.getElementByIdx_x("tableid"); //获取表格对象 for (var i = 0; i < tableObj.rows.length; i++) { //遍历Tabl

JavaScript基础 rows,cells 得到表格中所有单元格的内容

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

Bootstrap3基础 table-condensed 表格中的单元格紧凑一些

礼悟:    公恒学思合行悟,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼养身心,诚劝且行且珍惜.              ide:visual studio 2017             browser:Firefox / Chrome   bootstrap:3.3.7 代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta

jquery获取表格中动态单元格内单选框和多选框的值

1.通过table的Id获取到每行(tr)的元素, $("#table_xuan tr") 如果过滤第一行和最后一行 $("#table_xuan tr:not(:first):not(:last)") 2.通过 each()函数遍历 每一行 $("#table_xuan tr").each(function(i)){ // i 代表的是行数 $(this).children("td").each(function(j)){