Primefaces(5.1)-通过移动其余列来调整列大小

Primefaces(5.1)-通过移动其余列来调整列大小,primefaces,Primefaces,Primefaces,版本5.1。 请告诉我,是否有可能在不减少下一列宽度的情况下更改列宽,而移动其余列 说明: 有可调整大小的列 调整第一列的大小时,第二列的宽度会发生变化 但是,需要在不减少第二列宽度的情况下移动其他列(第二列和其他列的宽度不会改变,并且在增加列的宽度后应该出现滚动) 如果你知道如何解决这个问题,请帮助我我也遇到过同样的问题。据我调查,问题的根源在于PrimeFaces的源datatable.js第2123行()中的方法“resize()” 如果您查看PrimeFaces S

Primefaces,版本5.1。 请告诉我,是否有可能在不减少下一列宽度的情况下更改列宽,而移动其余列

说明:

  • 有可调整大小的列

  • 调整第一列的大小时,第二列的宽度会发生变化

  • 但是,需要在不减少第二列宽度的情况下移动其他列(第二列和其他列的宽度不会改变,并且在增加列的宽度后应该出现滚动)


  • 如果你知道如何解决这个问题,请帮助我

    我也遇到过同样的问题。据我调查,问题的根源在于PrimeFaces的源datatable.js第2123行()中的方法“resize()”

    如果您查看PrimeFaces Showcase,Resizeable columns(),您将能够在Chrome浏览器控制台中使用
    PrimeFaces.widgets.widget\u form\u cars2.resize获得此方法

    有了这些知识,我们可以尝试用我们自己的resize来替换这个方法,它不会改变
    nextColumnHeader
    nextColumn
    nextcolumnheater

    例如,在()上执行以下代码并播放第二张表

    PrimeFaces.widgets.widget\u form\u cars2.resize=函数(事件,用户界面){
    var列标题;
    var变化=null;
    var newWidth=null;
    if(this.hasColumnGroup){
    var groupResizer=this.findGroupResizer(ui);
    columnHeader=groupResizer.parent();
    }否则{
    columnHeader=ui.helper.parent();
    }
    if(this.cfg.liveResize){
    change=columnHeader.outerWidth()-(event.pageX-columnHeader.offset().left);
    newWidth=(columnHeader.width()-change);
    }否则{
    change=(ui.position.left-ui.originalPosition.left);
    newWidth=(columnHeader.width()+更改);
    }
    如果(新宽度>15){
    columnHeader.width(新宽度);
    var colIndex=columnHeader.index();
    if(this.cfg.scrollable){
    这是泰阿克隆
    .find(PrimeFaces.escapeClientId(columnHeader.attr('id')+'u clone'))
    .宽度(新宽度);
    如果(this.footerCols.length>0){
    var footerCol=this.footerCols.eq(colIndex);
    页脚列宽度(新宽度);
    }
    }
    }
    }