jsp表格列的合并

script language="JavaScript" type="text/javascript">
//函数说明:合并指定表格(表格id为_w_table_id)指定列(列数为_w_table_colnum)的相同文本的相邻单元格
//参数说明:_w_table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data
//参数说明:_w_table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。

function _w_table_rowspan(_w_table_id,_w_table_colnum){
  _w_table_firsttd = "";
  _w_table_currenttd = "";
  _w_table_SpanNum = 0;
  _w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")");
  _w_table_Obj.each(function(i){
   if(i==0){
    _w_table_firsttd = $(this);
    _w_table_SpanNum = 1;
   }else{
    _w_table_currenttd = $(this);
    if(_w_table_firsttd.text()==_w_table_currenttd.text()){              //这边注意不是val()属性,而是text()属性
     _w_table_SpanNum++;
     _w_table_currenttd.hide(); //remove();
     _w_table_firsttd.attr("rowSpan",_w_table_SpanNum);
    }else{
     _w_table_firsttd = $(this);
     _w_table_SpanNum = 1;
    }
   }
  });
}

//函数说明:合并指定表格(表格id为_w_table_id)指定行(行数为_w_table_rownum)的相同文本的相邻单元格
//参数说明:_w_table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="data" ,此参数应为 #data
//参数说明:_w_table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。
//          如果为数字,则从最左边第一行为1开始算起。
//          "even" 表示偶数行
//          "odd" 表示奇数行
//          "3n+1" 表示的行数为1、4、7、10.......
//参数说明:_w_table_maxcolnum 为指定行中单元格对应的最大列数,列数大于这个数值的单元格将不进行比较合并。
//          此参数可以为空,为空则指定行的所有单元格要进行比较合并。

function _w_table_colspan(_w_table_id,_w_table_rownum,_w_table_maxcolnum){
  if(_w_table_maxcolnum == void 0){_w_table_maxcolnum=0;}
  _w_table_firsttd = "";
  _w_table_currenttd = "";
  _w_table_SpanNum = 0;
  $(_w_table_id + " tr:nth-child(" + _w_table_rownum + ")").each(function(i){
   _w_table_Obj = $(this).children();
   _w_table_Obj.each(function(i){
    if(i==0){
     _w_table_firsttd = $(this);
     _w_table_SpanNum = 1;
    }else if((_w_table_maxcolnum>0)&&(i>_w_table_maxcolnum)){
     return "";
    }else{
     _w_table_currenttd = $(this);
     if(_w_table_firsttd.text()==_w_table_currenttd.text()){
      _w_table_SpanNum++;
      _w_table_currenttd.hide(); //remove();
      _w_table_firsttd.attr("colSpan",_w_table_SpanNum);
     }else{
      _w_table_firsttd = $(this);
      _w_table_SpanNum = 1;
     }
    }
   });
  });
}
< /script>

1.下面以实际开发中的例子说明使用:

//这边要注意的地方是:我们在遍历数据库
询出来的数据时,我们是直接把值赋给在文本框里面的value属性,即(value = "<%=map.get("gz_dept") 
%>"),但我们这边要注意的是:他通过的是td里面的text属性,进行合并的,而不是jquery里面的val()属性进行合并的,所以我们这
边要特别注意,在上面用绿色标出的地方

<td align="center" style="backgroundColor: #ccc"><%= map.get("gz_dept") %></td> // 这句关键

1.首先先从数据库里面查询出相应的数据

<%
 //查询数据
 String sql ="select
GZ_UNID,GZ_DEPT,GZ_XH,GZ_NAME,GZ_MONTH,GZ_CQGZ,GZ_YBXJ,GZ_QYYL,GZ_QYSY,GZ_QYGS,GZ_QYSYU,GZ_QYYB,GZ_QYGJJ,GZ_QYXJ,GZ_GZBXHJ,GZ_HSKM,GZ_RYXZ
from CW_GZ_BASIC t  order by gz_dept";
 JdbcTemplate jdbcTemplate = new JdbcTemplate("proxool");
 List list = null;
 DecimalFormat df = new DecimalFormat();
 df.applyPattern("0,000");  // 将格式应用于格式化器
 double tgzbxhj = 0.0; 
 int totalflag = 0;         //工资保险合计
%>

2.编写好表格的HTML代码

<table class="table2" width="760" height="120" border="1" id="spdata">
        <col width="10%"/>
        <col width="4%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="4%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="6%"/>
        <col width="4%"/>
        <col width="4%"/>
        <col width="10%"/>
        <col width="10%"/>
        <tr height=‘30‘>
            <td rowspan=2 align="center"><FONT><FONT
COLOR="#000000">部</FONT><BR/><FONT
COLOR="#000000">门</FONT></FONT></td>
            <td rowspan=2 align="center"><FONT><FONT
COLOR="#000000">序</FONT><BR/><FONT
COLOR="#000000">号</FONT></FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">月份</FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">姓名</FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">出勤工资</FONT></td>
            <td align="center"><FONT COLOR="#000000">应补项目</FONT></td>
            <td colspan=7 align="center"><FONT COLOR="#000000">   企业应扣缴</FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">工资保险合计(J+M+AI)</FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">核算科目</FONT></td>
            <td rowspan=2 align="center"><FONT COLOR="#000000">人员性质</FONT></td>
        </tr>
        <tr height=‘38‘>
            <td align="center"><FONT COLOR="#000000">小计</FONT></td>
            <td align="center"><FONT COLOR="#000000">养老(18%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">失业(2%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">工伤(1%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">生育(0.7%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">医保(7.5%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">公积金(12%)</FONT></td>
            <td align="center"><FONT COLOR="#000000">小计</FONT></td>
        </tr>
        <%
       
        try{
   jdbcTemplate.open();
            list = jdbcTemplate.queryForList(sql);
            System.out.println(list.size());

if(list.size()>0 && list!=null)
   {
    for(int j =0;j<list.size();j++)
      {
           Map map = (Map)list.get(j);
       //获取出勤工资、应补小计、企业小计
       String tcqgz = (String)map.get("gz_cqgz");
       String tybxj = (String)map.get("gz_ybxj");
       String tqyxj =(String) map.get("gz_qyxj");  
       if(tcqgz==null || tcqgz.equals("")){
       tcqgz = "0.0";
      }
       if(tybxj==null || tybxj.equals("")){
       tybxj = "0.0";
      }
       if(tqyxj==null || tqyxj.equals("")){
       tqyxj = "0.0";
      }
    tgzbxhj = Double.parseDouble(tcqgz) + Double.parseDouble(tybxj) + Double.parseDouble(tqyxj);   
          
         %>
         <tr height=‘30‘ id ="gz">
            <td align="center" style="backgroundColor: #ccc"><%= map.get("gz_dept") %></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_XH" name="GZ_XH"
style="height:30;width:30;border:solid 0px #ccc;padding-left:2px"
value="<%= j+1 %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_MONTH" name="GZ_MONTH"
style="height:30;width:85;border:solid 0px #ccc;padding-left:1px"
value="<%= map.get("gz_month") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_NAME" name="GZ_NAME"
style="height:30;width:90;border:solid 0px #ccc;padding-left:20px"
value="<%= map.get("gz_name") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_CQGZ" name="GZ_CQGZ"
style="height:30;width:58;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_cqgz") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_YBXJ" name="GZ_YBXJ"
style="height:30;width:60;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_ybxj") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_QYYL" name="GZ_QYYL"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qyyl") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_QYSY" name="GZ_QYSY"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qysy") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_QYGS" name="GZ_QYGS"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qysy") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_QYSYU" name="GZ_QYSYU"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qysyu") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_QYYB" name="GZ_QYYB"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qyyb") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_QYGJJ" name="GZ_QYGJJ"
style="height:30;width:65;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qygjj") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled"  id="GZ_QYXJ" name="GZ_QYXJ"
style="height:30;width:60;border:solid 0px #ccc;padding-left:10px"
value="<%= map.get("gz_qyxj") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_GZBXHJ" name="GZ_GZBXHJ"
style="height:30;width:60;border:solid 0px #ccc;padding-left:10px"
value="<%= tgzbxhj %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_HSKM" name="GZ_HSKM"
style="height:30;width:120;border:solid 0px #ccc;" value="<%=
map.get("gz_hskm") %>"></td>
            <td><input type="text" class="inputbox"
disabled="disabled" id="GZ_RYXZ" name="GZ_RYXZ"
style="height:30;width:120;border:solid 0px #ccc;" value="<%=
map.get("gz_ryxz") %>"></td>
        </tr>
         <%
        
    }
 }

}catch(Exception e)
 {
 jdbcTemplate.rollback();
    e.printStackTrace();
 
 }
 finally{
 jdbcTemplate.close();
 
 }
   
  %>
    </table>

3. 在head里面进行调用上面的合并表格函数即可

//函数说明:合并指定表格(表格id为_w_table_id)指定列(列数为_w_table_colnum)的相同文本的相邻单元格  
//参数说明:_w_table_id 为需要进行合并单元格的表格的id。   
//参数说明:_w_table_colnum 为需要合并单元格的所在列。 
function _w_table_rowspan(_w_table_id,_w_table_colnum){  
    _w_table_firsttd = "";    
    _w_table_currenttd = "";  
    _w_table_SpanNum = 0;
     
    _w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")");
    _w_table_Obj.each(function(i){ 
        if(i==0){ 
            _w_table_firsttd = $(this);
            _w_table_SpanNum = 1; 
        }else{ 
            _w_table_currenttd = $(this);           
            if(_w_table_firsttd.text() ==_w_table_currenttd.text()){ 
                _w_table_SpanNum++; 
                _w_table_currenttd.hide(); //remove(); 
      _w_table_firsttd.attr("rowSpan",_w_table_SpanNum);   
               
            }else{
            
                _w_table_firsttd = $(this);
                _w_table_SpanNum = 1; 
                    
            } 
        } 
    });  

 $(function(){        
        _w_table_rowspan("#spdata",1); 
    });

</script>

0
0
时间: 2024-10-13 05:32:07

jsp表格列的合并的相关文章

【峰回路转】Excel技巧百例 07.汉字列的合并

如果您看到如下图这样的表格,需要把内容合并到一列,您会如何处理呢? 这里介绍一下汉字列的合并 常用的方式有2种: 1.用&连接符 E1=A1&B1&C1&D1 2.用CONCATENATE函数 版权声明:本文为博主原创文章,未经博主允许不得转载.

表格实现标题合并代码实例

表格实现标题合并代码实例:这样的需求不在少数,比如表格中相邻的列具有相同的内容,那么标题就完全可以使用一个,那么合并标题就是十分重要的,让用户感觉也会更加人性化,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /&

使用jqueryUI实现自由调整表格列宽

今天项目中需要插入表格,用Excel表格调整列宽时,想怎么拖就怎么拖,于是乎就让插入的表格也这么让人舒服.网上查找许久,没找到好用的方案.最后发现jQuery UI中的resizable()方法可以实现div的自由调整,既然可以在div上实现,那表格也应该没问题吧.于是就动手折腾,成功搞定. 代码详情: main.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn

Java利用poi生成word(包含插入图片,动态表格,行合并)

转: Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: Word生成结果: 图表 2需要的jar包:(具体jar可自行去maven下载) 注意:需要严格按照上面版本下载jar包,否则可能出现jar包之间不能匹配的导致代码报错 各种 jar包都可以在这里下载: https://mvnrepository.com/ Tes

表格列点击排序

实现点击表格列实现排序的效果,按照一列一列的排序 代码如下: 排序代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> table{ border-collapse: collapse; } th,td{ height: 30px; width: 8

FineUIMvc随笔 - 动态创建表格列

声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 用户需求 用户希望实现动态创建表格列,在 WebForms 中,我们通过在 Page_Init 中创建列来实现: 但是在 MVC 中,如果还想着 WebForms 的那一套,想着怎么才能在 Controller 中访问 View 中的表格控件,这是行不通的. 我曾写过一个系列文章<ASP.NET MVC快速入门(MVC5+EF6)>,开篇就讲到了 MVC 中的页面的生成流程: 这个页面之所以能够呈现在我们眼前,经历了三个主

表格列宽怎么设置都无效?(td内容自动换行问题)

有次设置表格列宽时,显示的实际宽度与设置的宽度不一致,且无规律变化.最后,在查找资料后发现,可能是td内容 自动换行 的问题.因为表格中的内容有中文.英文字母.还有数字,以及三者的各种组合,所以换行的方式不一致,导致列宽变化.(个人分析,不妥之处请拍砖.) 所以添加以下css可以解决问题: table{ word-break:break-all ; word-wrap:break-word } 说明: (1) word-break:break-all:截断单词进行换行. (2) word-wra

MSSQL—列记录合并成一行

在项目开发中,有时会碰到将列记录合并为一行的情况,例如根据地区将人员姓名合并,或根据拼音首字母合并城市等,下面就以根据地区将人员姓名合并为例,详细讲一下合并的方法. 首先,先建一个表,并添加一些数据,建表代码如下: If OBJECT_ID(N'Demo') Is Not Null    Begin        Drop Table Demo    EndElse    Begin        Create Table Demo(        Area nvarchar(30),     

1_表格列的控制.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-