• 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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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
  • 相关阅读:
    绝对相等与弱相等
    css3之媒体查询
    css3新增选择器
    BFC渲染机制
    css优先级及其对应的权重
    滚动指示器
    web储存的初级运用
    setTimeout与setInterval的使用
    原生js获取left值和top值
    canvas圆形进度条
  • 原文地址:https://www.cnblogs.com/zhuzhuxuan/p/5590069.html
Copyright © 2020-2023  润新知