ti_baby_hu 2016-08-05 03:36 采纳率: 0%
浏览 1170
已结题

easyui表格行号出错的问题

easyui datagrid rownumber 初始表格的时候是正常的显示,行内编辑里面包含了一个combobox
,当点出修改的时候,如果编辑的是第一行,那它的行号就变成了010,如果是第二行的话就变成 了020
找不到错误。请问有没有碰到过这样问题。谢谢

  • 写回答

2条回答 默认 最新

  • 鱼弦 全栈领域优质创作者 2016-08-05 03:44
    关注

    解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var opts = $(this).datagrid('options');
    if(opts.rownumbers){
    var dgPanel = $(this).datagrid('getPanel');
    var tdRownumber = dgPanel.find('.datagrid-header-rownumber').parent();
    var hasFrozenColumns = $(this).datagrid('getColumnFields',true);
    if(hasFrozenColumns.length){
    var dgView2 = dgPanel.find('.datagrid-view2');
    var trCount = dgView2.find('.datagrid-header tr').length;

                      tdRownumber.attr('rowspan',trCount);
                  }
              }
    
    
    

    2.

    $.extend($.fn.datagrid.methods, {
    fixRownumber : function (jq) {
    return jq.each(function () {
    var panel = $(this).datagrid("getPanel");
    //获取最后一行的number容器,并拷贝一份
    var clone = $(".datagrid-cell-rownumber", panel).last().clone();
    //由于在某些浏览器里面,是不支持获取隐藏元素的宽度,所以取巧一下
    clone.css({
    "position" : "absolute",
    left : -1000
    }).appendTo("body");
    var width = clone.width("auto").width();
    //默认宽度是25,所以只有大于25的时候才进行fix
    if (width > 25) {
    //多加5个像素,保持一点边距
    $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
    //修改了宽度之后,需要对容器进行重新计算,所以调用resize
    $(this).datagrid("resize");
    //一些清理工作
    clone.remove();
    clone = null;
    } else {
    //还原成默认状态
    $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
    }
    });
    }
    });

    
    

    将上述代码添加到easyui源码当中即可

    然后在你的$(“#dg”).datagrid()中添加onLoadSuccess事件
    $("#dg").datagrid({
    onLoadSuccess : function () {
    $(this).datagrid("fixRownumber");
    }
    });

    
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?