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 > )
{
StringBuilder sb = new StringBuilder();
int rowsIndex = ;
for (int i = ; i < dtXSSJFX.Rows.Count; i++)
{ if ((i + ) != dtXSSJFX.Rows.Count)
{
if (dtXSSJFX.Rows[i]["dlmc"].ToString() == dtXSSJFX.Rows[i + ]["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 + - rowsIndex]["jjmc"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["sl_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["je_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["zb_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["sl_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["je_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["zb_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["sl_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["je_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex]["zb_hj"].ToString());
sb.AppendLine("</tr>"); for (int j = ; 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 + - rowsIndex + j]["jjmc"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["sl_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["je_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["zb_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["sl_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["je_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["zb_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["sl_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["je_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[i + - rowsIndex + j]["zb_hj"].ToString());
sb.AppendLine("</tr>");
}
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 style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["dlmc"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["jjmc"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["sl_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["je_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["zb_jm"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["sl_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["je_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["zb_zy"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["sl_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["je_hj"].ToString());
sb.AppendFormat(" <td style=\"text-align: left; width: 100px; \">{0}</td>", dtXSSJFX.Rows[dtXSSJFX.Rows.Count - ]["zb_hj"].ToString());
sb.AppendLine("</tr>");
} }
litHTMLS.Text = sb.ToString();
ASP.NET- 合并HTML的表格相同项单元格的更多相关文章
- asp.net使用控件datagrid实现表头单元格合并
合并的要点: 1.datagid的单元格合并原理是table中tr,td的布局实现; 2.合并的时机实在其datagridcreate事件中实现; 3.认识一个对象TableCellCollectio ...
- FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架
这是一篇很长的文章,在开始正文之前,请允许我代表目前排名前 20 中唯一的 .Net 开源软件 FineUI 拉下选票: 投票地址: https://code.csdn.net/2013OSSurve ...
- Swift - 给表格添加移动单元格功能(拖动行)
1,下面的样例是给表格UITableView添加单元格移动功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,可以看到单元格后面出现拖动按钮 (3)鼠标按住拖动按钮,可以 ...
- Javascript合并表格相同内容单元格示例
效果图: HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- JQuery实现表格的相同单元格合并的三种方法
代码: <!DOCTYPE html> <html> <head> <title>merge.html</title> <meta h ...
- Excel表格如何保护单元格不被修改
Excel如何保护单元格不被修改 有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起 ...
- WebDriver获得表格里所有单元格的文本
方法为: 1. 得到表格中所有的tr,存到list到中 2.对tr进行循环,根据当前的tr,得到当前所有td的集合存到list当中 3.循环中所有td里的文本 package com.example. ...
- NX二次开发-UFUN工程图表格注释设置单元格首选项UF_TABNOT_set_cell_prefs
NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...
- ExtJs GridPanel 给表格行或者单元格自定义样式
Ext.onReady(function(){ Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:['name', 'ema ...
随机推荐
- java网络基本类使用(一)
1.怎么获取ip相关信息 import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumera ...
- 中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)
题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721 题意: 给定n个左标,跟那n个坐标 ...
- poj2478
比较简单的树形dp; 定义s[i]为节点i的子树节点数和(包括自身):叶子节点s[j]=1; s[i]=signma(s[k])+1 (k是i的孩子) 则i满足的条件是 1.s[k]<=n di ...
- poj3254
还是那句老话:dp关键在状态: 求有多少种排布方式,是任意两头牛不相邻(有些地方不能放): 不用心,一开始还纠结了半天 和之前USACO上某题方法是一样的,每一行放或不放只有两种情况 把它当作一个二进 ...
- poj2828
很容易想到一种动态的做法:平衡树…… 或者是二分+树状数组 但,前者编程复杂度较大,而且据说会被卡(没试过):后者理论上超时(据说可以擦边过?): 所以要尝试新的算法: 倒着考虑,显然最后一个对象的位 ...
- jquery 图片无缝切换
想要和园友分享一下学习jquery的经验.总结,更希望园友提出点建议. 第一次写,有不好的地方请多多见谅! 文笔有限,很多时候不知道怎么来描述,唉.硬伤啊!!那只好多做了,贴代码... ok,废话少说 ...
- Nginx+Tomcat+Terracotta的Web服务器集群实做
1.准备工作两个Linux服务器,可以用VMware装一个,然后配置好再克隆一个,修改IP即可.Host1:192.168.0.79Host2:192.168.0.80先配置好jdk1.6.0和tom ...
- ORACLE DATAGURARD 折腾记二
前文再续,书接上一回,这次折腾Data Guard的一个重要目的是利用switchover实现机器的升级,怎么switchover呢?按照我的理解,Data Guard的角色切换是这样一个过程: (1 ...
- Hibernate4.x之映射文件
POJO类和数据库的映射文件*.hbm.xml POJO类和关系数据库之间的映射可以用一个XML文档来定义 通过POJO类的数据库映射文件,Hibernate可以理解持久化类和数据库表之间的对应关系, ...
- andorid 进度条
SeekBar类似于ProgressBar,但是ProgressBar的主要功能是让用户知道目前的状态,而SeekBar的功能在于让用户调整进度,举个例子,在音乐播放器中,可以通过调整SeekBar来 ...