zoukankan      html  css  js  c++  java
  • easyui datagrid 行右键 动态获取并生成toolbar 按钮

    
    
     1 var createGridRowContextMenu = function(e, rowIndex, rowData) {
     2     e.preventDefault();
     3     var grid = $(this);/* grid本身 */
     4     var rowContextMenu = this.rowContextMenu;/* grid上的列头菜单对象 */
     5     grid.datagrid('unselectAll').datagrid('selectRow', rowIndex);
     6     if (!rowContextMenu) {
     7         var tmenu = $('<div style="100px;"></div>').appendTo('body');
     8         var toolbar = grid.datagrid('getToolbar');
     9         var filedHTML = $('<div iconCls="icon-columns"></div>');
    10         var span = $('<span>翻页控制</span>');
    11         var spdiv = $('<div></div>');
    12         for ( var i = 0; i < toolbar.length; i++) {
    13             var btn = $(toolbar[i]).linkbutton('options');
    14             var btnElement = $(toolbar[i]).linkbutton();
    15             var c = $(btnElement).attr("onclick");
    16             $("<div data-options=iconCls:'"+btn.iconCls+"',disabled:"+btn.disabled+" fire='" + c + "',/>").html(btn.text).appendTo(tmenu);
    17             //$('<div data-options=iconCls:"'+btn.iconCls+'",onclick:'+$(btnElement).attr("onclick")+',disabled:'+btn.disabled+'/>').html(btn.text).appendTo(tmenu);
    18         }
    19         spdiv.append('<div iconCls="pagination-first">首页</div>');
    20         spdiv.append('<div iconCls="pagination-prev">上一页</div>');
    21         spdiv.append('<div iconCls="pagination-next">下一页</div>');
    22         spdiv.append('<div iconCls="pagination-last">末页</div>');
    23         span.appendTo(filedHTML);
    24         spdiv.appendTo(filedHTML);
    25         filedHTML.appendTo(tmenu);
    26         rowContextMenu = this.rowContextMenu = tmenu.menu({
    27             onClick : function(item) {
    28                 var fire = $(item.target).attr('fire');
    29                 if(fire){
    30                     new Function(fire)();   //eval(fire);  eval 也是可行的;
    31                 }
    32                 var pager = grid.datagrid('getPager').pagination('options');    //拿到pager
    33                 var pagination = $(item.target).attr('iconCls');
    34                 var pageNum = 0
    35                 var page = pager.total / pager.pageSize;    //总行书 / 每页显示行数 =  总页数
    36                 page = Math.ceil(page)
    37                 if(pagination == 'pagination-first'){
    38                     pageNum = 1;
    39                 }
    40                 if(pagination == 'pagination-prev'){
    41                     pageNum = pager.pageNumber - 1;
    42                 }
    43                 if(pagination == 'pagination-next'){
    44                     pageNum = pager.pageNumber + 1;
    45                 }
    46                 if(pagination == 'pagination-last'){
    47                     pageNum = page;
    48                 }
    49                 grid.datagrid('getPager').pagination('select',pageNum);
    50             }
    51         });
    52     }else{
    53         
    54     }
    55     rowContextMenu.menu('show', {
    56         left : e.pageX,
    57         top : e.pageY
    58     });
    59     var pager = grid.datagrid('getPager').pagination('options');    //拿到pager
    60     var itemFirst = rowContextMenu.menu('findItem','首页');
    61     var itemPrev = rowContextMenu.menu('findItem','上一页');
    62     var itemNext = rowContextMenu.menu('findItem','下一页');
    63     var itemLast = rowContextMenu.menu('findItem','末页');
    64     rowContextMenu.menu('disableItem',itemFirst.target);
    65     rowContextMenu.menu('disableItem',itemPrev.target);
    66     rowContextMenu.menu('disableItem',itemNext.target);
    67     rowContextMenu.menu('disableItem',itemLast.target);
    68     var page = pager.total / pager.pageSize;    //总行书 / 每页显示行数 =  总页数
    69     //if(page < 1){    //如果页数小于0  
    70     //那么页数 = 1 page = 1;    
    71     //}
    72     page = Math.ceil(page)
    73     if(page < 1)
    74         page=page+1;
    75     if(1 < pager.pageNumber && pager.pageNumber < page){
    76         rowContextMenu.menu('enableItem',itemFirst.target);
    77         rowContextMenu.menu('enableItem',itemPrev.target);
    78         rowContextMenu.menu('enableItem',itemNext.target);
    79         rowContextMenu.menu('enableItem',itemLast.target);
    80     }
    81     if(page == pager.pageNumber && pager.pageNumber != 1){
    82         rowContextMenu.menu('enableItem',itemFirst.target);
    83         rowContextMenu.menu('enableItem',itemPrev.target);
    84     }
    85     if(pager.pageNumber == 1 && page != 1){
    86         rowContextMenu.menu('enableItem',itemNext.target);
    87         rowContextMenu.menu('enableItem',itemLast.target);
    88     }
    89 };
    90 $.fn.datagrid.defaults.onRowContextMenu = createGridRowContextMenu;
    91 $.fn.treegrid.defaults.onRowContextMenu = createGridRowContextMenu;
  • 相关阅读:
    38861cba61c66739c1452c3a71e39852.ttf net::ERR_ABORTED 404 (Not Found)
    php 进制转换base_convert
    mysql find_in_set 函数 使用方法
    xmind 破解
    python 获取 一个正整数的二进制
    算法 求一个数的平方根
    详细的描述一个测试活动完整的过程。
    常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
    HTTP 协议中 Vary 的一些研究
    svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
  • 原文地址:https://www.cnblogs.com/XiaoGer/p/2980868.html
Copyright © 2011-2022 走看看