JSF动态生成固定表头和行标的DataTable

这个例子在jsf1.1下通过。JSF动态生成DataTable, 希望可以供大家学习和参考。

创新互联建站专业为企业提供浑南网站建设、浑南做网站、浑南网站设计、浑南网站制作等企业网站建设、网页设计与制作、浑南企业网站模板建站服务,十载浑南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

自己在写JSF动态生成DataTable的时候也查阅了很多相关文章, 以及实现固定表头等等。

在解决固定表头问题上我是用的两张表(加行标是3张表)实现的, 因为我发现如果用JSF1.1的化实现固定表头几乎不可能(如果有人有好的想法, 比如用JS比较在行的朋友请告诉我解决方法, 谢谢)

实现给每个Header加上一个CommandLink的时候我遇到了很大的问题, 就是无论如何通过JSF动态生成的这些CommandLink都没有办法触发事件(并不报错), 这个问题足足折磨了我3天。。。

***终于发现问题的所在, 是因为我在生成CommandLink的时候没有给每个CommandLink  SetID。。。 就加上这句话,问题立马解决。

我原来的代码是链接数据库的, 但是这样的化大家也没有办法参考, 所以我对代码少加修改, 就算是个小例子吧, 可重用。

希望大家对我的代码提出JSF动态生成固定表头和行标的DataTable的意见,一起进步,谢谢。

  1. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 
  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 
  3.  language="JavaScript"> 
  4.   var tdW;  
  5.   //Scroll  
  6.   function f_scroll(Col_T,Row_T,DivNm){  
  7.     if(Col_T!=''){  
  8.       document.getElementById(Col_T).scrollLeft = document.getElementById(DivNm).scrollLeft;  
  9.     }  
  10.     if(Row_T!=''){  
  11.       document.getElementById(Row_T).scrollTop = document.getElementById(DivNm).scrollTop;  
  12.     }  
  13.   }  
  14. Script> 
  15.  
  16.   
  17.    
  18.    </strong>TABLE<strong> title></strong>  </li> <li>  <strong><link</strong> rel="stylesheet" type="text/css" href="styles.css"<strong>></strong>  </li> <li> <strong> head></strong>  </li> <li><strong><body></strong>  </li> <li> <strong><h:form></strong>  </li> <li>  <<strong>font</strong> size="2" color="black"  </li> <li>    style="position:absolute; left: 35; top: 5; width:200; height:20"<strong>></strong>  </li> <li>      <strong><h:outputText</strong> value="Please Enter:" <strong>/></strong> <strong> font></strong>  </li> <li>   <strong><h:inputText</strong> value="" size="20"  </li> <li>      style="position:absolute; left: 110; top: 5; width:150; height:20" <strong>/></strong>  </li> <li>   <strong><h:commandButton</strong> value="Search" action=""  </li> <li>      style="position:absolute; left: 270; top: 5; width:50; height:20" <strong>/></strong></li> <li><strong><table</strong> BORDER=0  </li> <li>      STYLE="POSITION: ABSOLUTE; LEFT: 0px; TOP: 30px; right: 0px; bottom: 0px;"<strong>></strong>  </li> <li>  <strong><tr></strong>  </li> <li>      <strong><td</strong> STYLE="text-align: right;"<strong>></strong>  </li> <li>             </li> <li>              </li> <li>       <strong> td></strong>  </li> <li>     <strong><td></strong>  </li> <li>            </li> <li>         <strong><Div</strong> ID="Table2"  </li> <li>         STYLE="position: relative; top: 0; border-left: 0.5pt solid black;   </li> <li>            border-right: 0.5pt solid black; height: 17.75px; width: 285px; overflow-x: hidden;"<strong>></strong>  </li> <li>          <strong><h:dataTable</strong> value="#{myBean.myHeader}" var="myHeader"  </li> <li>              binding="#{myBean.headerDataTable}" bgcolor="white" border="1"  </li> <li>              cellspacing="1" rendered="true" styleClass="orders"  </li> <li>              headerClass="ordersHeader" rowClasses="evenColumn,oddColumn"  </li> <li>              style="position:absolute; left: 0; top: 0;    </li> <li>                    width: 100; height: 10; border-collapse:collapse;"   </li> <li>           id="ree"<strong>></strong>  </li> <li>         <strong> h:dataTable></strong>  </li> <li>       <strong> Div></strong>  </li> <li>          </li> <li>    <strong> td></strong>  </li> <li><strong> tr></strong>  </li> <li><strong><tr></strong>  </li> <li>  <strong><td</strong> STYLE="vertical-align: top;"<strong>></strong>  </li> <li>        </li> <li>   <strong><Div</strong> ID="Table3"  </li> <li>      STYLE="border-bottom: 0.5pt solid black; border-top: 0.5pt solid black;    </li> <li>       width: 25.5px; height: 265px; overflow-y: hidden; position: relative; left: 0;"<strong>></strong>  </li> <li>    <strong><h:dataTable</strong> value="#{myBean.myNum}" var="myNum"  </li> <li>       binding="#{myBean.numDataTable}" bgcolor="white" border="1"  </li> <li>       cellspacing="1" rendered="true" styleClass="orders"  </li> <li>       headerClass="ordersHeader" rowClasses="evenColumn,oddColumn"  </li> <li>       style="position:absolute; left: 0; top: 0; width: 32; height: 5; border-collapse:collapse;"  </li> <li>       id="dee"<strong>></strong>  </li> <li>         <strong> h:dataTable></strong>  </li> <li>           <strong> Div></strong>  </li> <li>                </li> <li>          <strong> td></strong>  </li> <li>          <strong><td</strong> STYLE="vertical-align: top;"<strong>></strong>  </li> <li>               </li> <li>          <strong><Div</strong> ID="Table4" onScroll="f_scroll('Table2','Table3','Table4');"  </li> <li>             STYLE="height: 281px; width: 300px; overflow-y: scroll; overflow-x: scroll;"<strong>></strong>  </li> <li>          <strong><h:dataTable</strong> value="#{myBean.myList}" var="myItem"  </li> <li>              binding="#{myBean.dynamicDataTable}" bgcolor="white" border="1"  </li> <li>               cellspacing="1" rendered="true" styleClass="orders"  </li> <li>               headerClass="ordersHeader" rowClasses="evenColumn,oddColumn"  </li> <li>              style="position:absolute; left: 0; top: 0; width: 100;                                                                            height: 5; border-collapse:collapse;"<strong>></strong>  </li> <li>             <strong> h:dataTable></strong>  </li> <li>           <strong> Div></strong>  </li> <li>                </li> <li>        <strong> td></strong>  </li> <li>       <strong> tr></strong>  </li> <li>      <strong> table></strong>  </li> <li>     <strong> h:form></strong>  </li> <li>    <strong> body></strong>  </li> <li>  <strong> f:view></strong>  </li> <li><strong> html></strong></li> </ol> <br> 网页标题:JSF动态生成固定表头和行标的DataTable <br> 本文路径:<a href="http://zjjierui.cn/article/dhpiosc.html">http://zjjierui.cn/article/dhpiosc.html</a> </div> </div> <div class="other"> <h3>其他资讯</h3> <ul> <li> <a href="/article/dphdooh.html">如何更新dedecms手机版网页</a> </li><li> <a href="/article/dphdoji.html">网站托管价格多少,了解网站托管价格的相关信息</a> </li><li> <a href="/article/dphdoop.html">html如何让图片居中</a> </li><li> <a href="/article/dphdogd.html">Linux下的万年历研究(万年历linux)</a> </li><li> <a href="/article/dphdooc.html">敏捷开发者必读书籍</a> </li> </ul> </div> </div> <div class="f_service_con"> <div class="h_fumin"> <div class="h_fumin_lei"> <div class="h_fumin_lei_tu"><img src="/Public/Home/images/f_service01.png"></div> <p>售后响应及时</p><span>7×24小时客服热线</span> </div> <div class="h_fumin_lei"> <div class="h_fumin_lei_tu"><img src="/Public/Home/images/f_service02.png"></div> <p>数据备份</p><span>更安全、更高效、更稳定</span> </div> <div class="h_fumin_lei"> <div class="h_fumin_lei_tu"><img src="/Public/Home/images/f_service03.png"></div> <p>价格公道精准</p><span>项目经理精准报价不弄虚作假</span> </div> <div class="h_fumin_lei"> <div class="h_fumin_lei_tu"><img src="/Public/Home/images/f_service04.png"></div> <p>合作无风险</p><span>重合同讲信誉,无效全额退款</span> </div> </div> </div> <div class="footerbar"> <div class="footer-t"> <div class="f-box"> <div class="f-1"> <div class="f-t"> <h2>联系我们</h2> <span>TEL</span> </div> <div class="f-b"> <h1><a href="tel:13518219792" rel="nofollow">135-1821-9792</a></h1> <h1><a href="tel:028-86922220" rel="nofollow">028-86922220</a></h1> <p>地址:成都市太升南路288号锦天国际</p> </div> </div> <div class="f-2"> <div class="f-t"> <h2>快捷导航</h2> <span>Shortcut</span> </div> <div class="f-b"> <ul > </ul> <ul > <li><a href="/jianshe" title="广元网站建设">广元网站建设</a></li> <li><a href="/jianshe#ym_websiteBox2" title="品牌网站建设">品牌网站建设</a></li> <li><a href="/jianshe#ym_websiteBox1" title="企业网站建设">企业网站建设</a></li> <li><a href="/jianshe#ym_websiteBox4" title="集团网站建设">集团网站建设</a></li> <li><a href="/jianshe#ym_websiteBox4_2" title="外贸网站建设">外贸网站建设</a></li> <li><a href="/jianshe#ym_websiteBox4_5" title="企业宣传视频">企业宣传视频</a></li> </ul> <ul > <li><a href="/weixin" title="微信开发">微信开发</a></li> <li><a href="/weixin#item1" title="公众号开发">公众号开发</a></li> <li><a href="/weixin#item2" title="微商城建设">微商城建设</a></li> <li><a href="/weixin#item3" title="微官网建设">微官网建设</a></li> <li><a href="/weixin#item4" title="小程序开发">小程序开发</a></li> </ul> <ul> <li><a href="/case/" title="网站作品案例">网站作品案例</a></li> <li><a href="/case/" title="品牌网站案例">品牌网站案例</a></li> <li><a href="/case/" title="集团网站案例">集团网站案例</a></li> <li><a href="/case/" title="企业网站案例">企业网站案例</a></li> <li><a href="/case/" title="外贸网站案例">外贸网站案例</a></li> <li><a href="/case/" title="营销网站案例">营销网站案例</a></li> </ul> <ul style="margin:0;"> <li><a href="/about/">广元建站</a></li> <li><a href="/about/">公司简介</a></li> <li><a href="/about#ab_item3">企业文化</a></li> <li><a href="/contact">联系我们</a></li> <li><a href="/Pay.html">付款方式</a></li> <li><a href="/jianshe#ym_websiteBox8">售后服务</a></li> </ul> <div style="clear:both;"></div> </div> </div> <div class="f-3"> <div class="f-t"> <h2>二维码</h2> <span>QR CODE</span> </div> <div class="f-b"> <ul> <li><img src="/Public/Home/images/fewm.png"> <p>微信公众号</p> </li> <li style="margin: 0"><img src="/Public/Home/images/fewm2.png"> <p>手机端网站</p> </li> <div style="clear:both;"></div> </ul> </div> </div> <div style="clear:both;"></div> </div> </div> <div class="footer-about"> <div class="w1200">广元优众联杰建站公司是一家专注从事于高品质视觉体验及互联网设计开发,<a href="/" target="_blank">广元网站建设</a>,<a href="/jianshe" target="_blank">广元网站设计</a>,<a href="/jianshe" target="_blank">广元网页设计</a>,<a href="/jianshe" target="_blank">广元网站制作</a>,<a href="/jianshe#ym_websiteBox2" target="_blank">品牌网站建设</a>,<a href="/jianshe#ym_websiteBox3" target="_blank">营销网站建设</a>,<a href="/jianshe#ym_websiteBox4" target="_blank">集团网站建设</a>,<a href="/jianshe#ym_websiteBox1" target="_blank">企业网站建设</a>,<a href="/jianshe#ym_websiteBox4_2" target="_blank">外贸网站建设</a>,<a href="/jianshe#ym_websiteBox4_3" target="_blank">响应式网站建设</a>,<a href="/weixin#item4" target="_blank">小程序开发</a>,<a href="/weixin" target="_blank">微信开发</a>,<a href="/jianshe#ym_websiteBox4_4" target="_blank">企业形象设计</a>,<a href="/jianshe#ym_websiteBox4_5" target="_blank">企业宣传视频</a>等服务,优众联杰建站位于广元市龙岗区大运软件小镇,优众联杰建站拥有经验丰富的高级网站建设工程师和一流的网页高端设计人员,具备各种规模与类型网站建设的雄厚实力,在网站建设领域树立了自己独特的设计风格。 </div> <div class="friend-links"> <h6 class="clearfix"> <span class="tilte">友情链接</span> <a class="exchagne" href="http://wpa.qq.com/msgrd?v=3&uin=631063699&site=qq&menu=yes">交换友情链接</a> </h6> <div class="link-list clearfix"> <div class="link-slider"> <a href="http://www.fdjweixiu.com/" title="成都发电机维修公司" target="_blank">成都发电机维修公司</a>   <a href="http://www.baojieyx.com/" title="南充保洁公司" target="_blank">南充保洁公司</a>   <a href="https://www.xwcx.net/jigui.html" title="成都机柜租用" target="_blank">成都机柜租用</a>   <a href="http://www.lmujw.com/" title="汶川发电机维修" target="_blank">汶川发电机维修</a>   <a href="http://www.gzjike.cn/" title="贵州柴油发电机" target="_blank">贵州柴油发电机</a>   <a href="http://www.cdkjz.cn/fangan/jtss/" title="上市企业网站建设方案" target="_blank">上市企业网站建设方案</a>   <a href="http://www.vieimy.com/" title="成都网站建设" target="_blank">成都网站建设</a>   <a href="http://www.sciotweb.com/" title="成都柴油发电机销售" target="_blank">成都柴油发电机销售</a>   <a href="http://www.qyjmty.com/" title="茶叶包装盒设计" target="_blank">茶叶包装盒设计</a>   <a href="http://www.jmzsxxw.com/" title="成都柴油发电机租赁" target="_blank">成都柴油发电机租赁</a>    </div> </div> </div> </div> <div class="footer-b"> <div class="f-box"> <ul> <li><a href="/jianshe#ym_websiteBox6" target="_blank">服务流程</a></li> <li><a href="/jianshe#ym_websiteBox8" target="_blank">售后服务</a></li> <li><a href="/about/" target="_blank">联系我们</a></li> <li><a href="https://www.cdxwcx.com/pay/" target="_blank">付款方式</a></li> <li><a href="https://www.cdcxhl.com/menu.html" target="_blank">网站地图</a></li> <li><a href="#" target="_blank">sitemap</a></li> <li> <p> <script data-cfasync="false" src="/Public/Home/js/email-decode.min.js"></script> </p> </li> <div style="clear:both;"></div> </ul> <p class="copy">Copyright © 2025 成都优众联杰科技有限公司 广元建站公司 All Rights Reserved   <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">蜀ICP备2024116266号-5</a> <a style="display:none" target="_blank" href="###"><img style="vertical-align:middle" border="0" src="" width="65" height="25" /></a> </p> <div style="clear:both;"></div> </div> </div> <div class="sj_footer"> <div class="f-box"> <ul> <li><a href="/jianshe" target="_blank">网站建设</a></li> <li><a href="/jianshe#ym_websiteBox6" target="_blank">服务流程</a></li> <li><a href="/jianshe#ym_websiteBox8" target="_blank">售后服务</a></li> <li><a href="https://www.cdxwcx.com/pay/" target="_blank">付款方式</a></li> <li><a href="/about/" target="_blank">关于我们</a></li> <li><a href="https://www.cdcxhl.com/menu.html" target="_blank">网站地图</a></li> <div style="clear:both;"></div> </ul> <p class="copy">Copyright © 2025 成都优众联杰科技有限公司 广元建站公司 </p> <p class="copy"> <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">蜀ICP备2024116266号-5</a>  <a href="###" target="_blank"><img src="/Public/Home/images/govicon.gif" width="20" height="28" border="0" style="border-width:0px;border:hidden; border:none;"></a></p> <div style="clear:both;"></div> </div> </div> </div> <script type='text/javascript' src='/Public/Home/js/qqkefu.js'></script> <div class="qqkefu"> <ul> <li class="qq_czaa" id="130"><b class="a"></b>135-1821-9792</li> <li class="qq_czaa" id="130"><a href="tencent://message/?uin=1683211881"><b class="b"></b>业务咨询QQ</a></li> <li class="qq_czaa" id="130"><a href="javascript:showDiv()"><b class="f"></b>提交合作意向表</a></li> <li class="qq_czb"> <b class="c"></b> <div class="erweima"> <p><img src="/Public/Home/images/right_erweima.png"></p> </div> </li> <li class="top"><span></span></li> </ul> </div> <div id="popDiv" class="mydiv" style="display:none;"> <a class="mydiv_clk" href="javascript:closeDiv()">X</a> <div class="mydiv_list"> <div class="c_f_title"><span class="c_f_t">合作意向表</span></div> <div class="c_f_con"> <form id="form1" name="form1" class="mess_form" method="post" action="/post_order"> <input name='enews' type='hidden' value='AddFeedback'> <input name="bid" value="1" type="hidden"> <input type="hidden" name="ecmsfrom" value="9"> <input type="hidden" name='title' value="客户提交需求"> <li class="c_n"><span>公司名称</span> <dl><input name='gsname' id='gsname' type="text"></dl> </li> <li class="c_n"><span>邮箱</span> <dl><input name='gemail' id='gemail' type="text"></dl> </li> <li class="c_n xmm"> <div class="xmm_01"><span>姓名</span> <dl class="c_n_i"><input name='name' id='name' type="text"></dl> </div> <div class="xmm_01"><span style="text-align:center">电话</span> <dl class="c_n_i"><input name="tel" type="text"></dl> </div> </li> <li class="c_tser">您需要的服务</li> <li class="clearfix"> <dd><label><input type="radio" name='hobby' id='hobby' value="高端网站建设"><span>高端网站建设</span></label></dd> <dd><label><input type="radio" name='hobby' id='hobby' value="我需要做微信营销"><span>我需要做微信营销</span></label></dd> <dd><label><input type="radio" name='hobby' id='hobby' value="要找长期合作,需要年度服务"><span>要找长期合作,需要年度服务</span></label></dd> <dd><label><input type="radio" name='hobby' id='hobby' value="我需要做购物商城"><span>我需要做购物商城</span></label></dd> <dd><label><input type="radio" name='hobby' id='hobby' value="我需要网站改版"><span>我需要网站改版</span></label></dd> <dd><label><input type="radio" name='hobby' id='hobby' value="其他"><span>其他</span></label></dd> </li> <li class="c_tser">您关注的地方</li> <li class="clearfix"> <dd><label><input type="radio" name='hobby2' id='hobby2' value="对功能要求比较高"><span>对功能要求比较高</span></label></dd> <dd><label><input type="radio" name='hobby2' id='hobby2' value="对设计创意要求比较高"><span>对设计创意要求比较高</span></label></dd> <dd><label><input type="radio" name='hobby2' id='hobby2' value="需要可以购物支付"><span>需要可以购物支付</span></label></dd> <dd><label><input type="radio" name='hobby2' id='hobby2' value="搜索引擎排名"><span>搜索引擎排名</span></label></dd> </li> <li class="c_tser">预算</li> <li class="clearfix clearfix2"> <dd><label><input type="radio" name='hobby3' id='hobby3' value="一万以内"><span>一万以内</span></label> </dd> <dd><label><input type="radio" name='hobby3' id='hobby3' value="1-3万"><span>1-3万</span></label> </dd> <dd><label><input type="radio" name='hobby3' id='hobby3' value="3-5万"><span>3-5万</span></label> </dd> <dd><label><input type="radio" name='hobby3' id='hobby3' value="5万以上"><span>5万以上</span></label> </dd> <dd><label><input type="radio" name='hobby3' id='hobby3' value="需招投标"><span>需招投标</span></label> </dd> </li> <li class="c_n" style="border-top:1px solid #eee; padding-top:10px"><span>验证码</span> <dl class="c_n_i yzmm"><input type="text" name='code' id='code' value=""></dl><span style="text-align:center"><img src="/Public/Home/images/1661eb19783442c38063791555cd0d80.gif" onclick="this.src=this.src + '?'" width="100" height="40"></span> </li> <li class="clearfix"> <dd class="submit"><input name='submit' type="submit" value="提交需求"></dd> </li> </form> </div> </div> </div> <div id="bg" class="bg" style="display:none;"></div> <div id='popIframe' class='popIframe' frameborder='0'></div> <script> //提交需求选项 $(document).ready(function (e) { $(".mess_form").submit(function () { if ($("#gsname").val() == "") { alert("请填写您的公司名称!"); $("#gsname").focus(); return false; } if ($("#gemail").val() == "") { alert("请填写您的邮箱"); $("#gemail").focus(); return false; } if ($("#name").val() == "") { alert("请填写您的姓名!"); $("#name").focus(); return false; } if ($("#tel").val() == "") { alert("请填写您的电话!"); $("#tel").focus(); return false; } if ($("#hobby").val() == "") { alert("请选择您需要的服务!"); $("#hobby").focus(); return false; } if ($("#hobby2").val() == "") { alert("请选择您关注的地方!"); $("#hobby2").focus(); return false; } if ($("#hobby3").val() == "") { alert("请选择您的预算!"); $("#hobby3").focus(); return false; } if ($("#code").val() == "") { alert("请填写正确的验证码!"); $("#code").focus(); return false; } }); }); </script> <script language="javascript" type="text/javascript"> //提交需求窗口 function showDiv() { document.getElementById('popDiv').style.display = 'block'; document.getElementById('popIframe').style.display = 'block'; document.getElementById('bg').style.display = 'block'; } function closeDiv() { document.getElementById('popDiv').style.display = 'none'; document.getElementById('bg').style.display = 'none'; document.getElementById('popIframe').style.display = 'none'; } </script> <script type="text/javascript" src="/Public/Home/js/scrolltopcontrol.js"></script> <script type="text/javascript" src="/Public/Home/js/su_new.js"></script> </body> </html> <script> $(".con img").each(function(){ var src = $(this).attr("src"); //获取图片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //绝对路径 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>