交互式网格中列标题中的文本长度

问题描述 投票:0回答:2

我要求列标题的宽度应与交互式网格中的文本长度一样。在我的报告中,将显示哪些列取决于用户将使用服务器端条件在选择列表中进行选择。

有什么方法可以实现?

截屏:

enter image description here

需要显示哪些列取决于用户通过DQ审核选择列表选择的值。

oracle-apex oracle-apex-5.1
2个回答
1
投票

这不是很简单,但是以下内容应该对您有用...

首先,将以下函数添加到页面的函数和全局变量声明属性:

function resizeIGColumns(gridView) {
  var addWidth = 20;
  var addWidthSort = 2;

  gridView.view$.grid('getColumns').forEach(function(column) {
    if (column.hidden || column.property === 'APEX$ROW_ACTION') {
      return true;
    }

    var headerSpan$ = $('#' + column.domId);
    var headerSort$ = headerSpan$.next('.a-GV-header-sort');\
    var width = headerSpan$.width() + addWidth;

    if (headerSort$.length) {
      width += headerSort$.width() + addWidthSort;
    }

    gridView.view$.grid('setColumnWidth', column.property, width);
  });
}

下一步,将以下代码添加到页面的页面加载时执行属性:

var gridView = apex.region('emp-reg').call('getViews').grid;
var widgetInst = gridView.view$.data('apex-grid');
var orgRefresh = widgetInst.refresh;

widgetInst.refresh = function() {
  orgRefresh.call(widgetInst);
  resizeIGColumns(gridView);
};

widgetInst.refresh();

此代码重新定义了网格小部件的刷新功能,以便它调用附加的resizeIGColumns函数。


0
投票

有两种定义列宽的方法:

  1. 自动。根据IG中的列数,它将定义width列。
    1. 通过设置。您可以转到操作->列,并为每列定义最小列宽(像素)

您能设置列的宽度并让我知道是否适合您吗?

© www.soinside.com 2019 - 2024. All rights reserved.