dwz框架的table优化,增加选定行处理。

由于不知道作者是如何设计的,不值得dwz框架如何得到选定行的某列的值,看示例还得设这什么row,rel属性,不如改进一下,方便自己使用。

需要解决3个问题:

1、前台页面table自定义事件处理函数问题

2、前台页面自定义函数接收dwz框架传递过来的参数(实际上是tr的click事件,但是是在dwz框架里)

3、如果一个页面有两个table,他们之间相互影响吗? (这个问题实际上现在就可以回答,但是还是用例子验证一下比较好。经过验证,两个table不会冲突,因为想一下jquery的原理,他是对每个table进行了事件绑定,所以影响不会超出他绑定的table。这个对于理解dwz那复杂的jquery的$代码还是有好处的。)

个人理解:dwz框架对检索到的当前页面的每个table都执行了jTable()函数,即对该table该绑定的事件都绑定了,但是如果在jtable的开头声明一个变量的话,两个table初始化时会不会相互影响呢。说到底dwz 是个js框架,js都是函数,最终都是要在同个页面解释执行的,后者很可能会覆盖前者的变量。不考虑这么多了,反正我增加的自定义事件,只是初始化时把函数名传过来,最终还是在本table的tr的click中执行的,因此变量只是起了个传递的作用,外部并不调用它。因此,执行上没有问题,而且我也已经验证过了多个table不会影响。

下面就上代码吧:

1.dwz.ui.js

    //tables
    //alert('初始化dwz.ui.table');
    //alert($("table.table", $p).length);
    //原来的初始化语句
    //$("table.table", $p).jTable();

    //优化后的初始化语句,让外部可以获取到点击某行选中的值
    $("table.table", $p).each(function(){
      var $this=$(this);
      var opts={};
      if ($this.attr("onselrow")) opts.onselrow= $this.attr("onselrow");
      $this.jTable(opts);

    });
 

2.dwz.stable.js

    $.fn.jTable = function(options){
        //alert('运行dwz.stable.jtable');
        //alert(options);
        var onselrow=options.onselrow;   //!!dwz初始化时,将页面的table的onselrow属性规定的函数名字传进来。
        //alert(onselrow);

        ......

                ........

                $tr.click(function(){
                    //根据前台页面table设置的onselrow事件处理函数名字,在这里加上参数,形成新的函数,并调用。
                    //即:在这个js框架里获取到选定行的第0列的值,然后传递给前台的js函数中。
                    //1.要求前台onselrow="doseltablerow_menulist",只传函数名字,不带();
                    //2.要求前台js要有对应接收参数:function doseltablerow_menulist(a1){....}
                    //alert('选择了行');
                    //alert($tr.find("td").length);
                    var $this=$(this);
                    //alert($this.find("td:first").text());
                    var col0=$this.find("td:first").text();
                    //alert("col0="+col0);
                    if(onselrow!=null && onselrow!="undefined")
                    {
                      var newfunc=onselrow + "('" + col0 + "');";
                      //alert(newfunc);
                      eval(newfunc);
                    }

                    //
                    $trs.filter(".selected").removeClass("selected");

                   .....

3.前台js和html





           


                

                        
  • 添加

  •                     
  • 删除

  •                     
  • 修改

  •                     
  • line

  •                     
  • 导出EXCEL

  •                     
  • 打印

  •                 

            

            
           
      
                tbl_menulist_selrowkey" type='text'>      
                doseltablerow_menulist" width="98%" targetType="navTab" asc="asc" desc="desc" layoutH="100">
                    
                       
                         
                         
                         
                         
                         
                       
                 
                  
                 
                        <%
                          if(rs.size()>0)
                          {
                            for(int i=0;i                             {
                              //String menu_id=((HashMap)rs.get(i)).get("menu_id")==null?"":((HashMap)rs.get(i)).get("menu_id").toString();
                              String menu_bm=db.getListValue(rs,i,"right_bm");
                              String menu_name=db.getListValue(rs,i,"meunname");
                              String menu_link=db.getListValue(rs,i,"link_addr");
                              String menu_ico=db.getListValue(rs,i,"imgname");
                              String menu_icoopen=db.getListValue(rs,i,"imgnameopen");
                              String menu_name_color=menu_bm.length()==3?"" + menu_name + "":menu_name;
                              //
                              out.println("
");
                              //out.println("  ");
                              out.println("  ");
                              out.println("  ");
                              out.println("  ");
                              out.println("  ");
                              out.println("  ");
                              out.println("");
                            }
                          }
                        %>
                 
              
编码菜单名称链接地址默认图标打开图标
" + menu_id + "" + menu_bm + "" + menu_name_color + "" + menu_link + " " + menu_ico + " " + menu_icoopen + " 

               
              

                    

                        显示
                        
                        条,共${totalCount}条
                    

                    
                    
    
              
           
           


你可能感兴趣的:(网页JS)