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

Oracle apex 交互式网格中列标题中的文本长度,oracle-apex,oracle-apex-5.1,Oracle Apex,Oracle Apex 5.1,我要求列标题与交互式网格中的文本长度一样宽。在我的报告中,将显示哪些列取决于用户将使用服务器端条件在选择列表中选择什么 有没有办法实现这一点 截图: 需要显示哪些列取决于用户通过DQ Audit Select List选择的值。这不是小事,但以下内容应该适用于您 首先,将以下函数添加到页面的函数和全局变量声明属性中: function resizeIGColumns(gridView) { var addWidth = 20; var addWidthSort = 2; grid

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

有没有办法实现这一点

截图:


需要显示哪些列取决于用户通过DQ Audit Select List选择的值。

这不是小事,但以下内容应该适用于您

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

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
函数

旧版本的APEX

在与Abhinav online会面后,我们发现需要在APEX 5中更改以下行

在调整大小的列中,此行:

var headerSpan$ = $('#' + column.domId);
var gridView = apex.region('emp-reg').call('getViews').grid;
应改为:

var headerSpan$ = $('#' + column.elementId + '_HDR');
var gridView = apex.region('emp-reg').widget().interactiveGrid('getViews').grid;
在页面加载时执行的代码中,这一行:

var headerSpan$ = $('#' + column.domId);
var gridView = apex.region('emp-reg').call('getViews').grid;
应改为:

var headerSpan$ = $('#' + column.elementId + '_HDR');
var gridView = apex.region('emp-reg').widget().interactiveGrid('getViews').grid;

有两种方法可以定义列的宽度:

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

  • 您能设置列的宽度并告诉我这是否适合您吗?

    我是否需要在var gridView和widgetInst中插入自己的值,而不是“emp reg”和“apex grid”?对不起,是的。首先为该区域分配一个静态ID。然后使用该值而不是emp-reg。感谢您的帮助,但我仍然在列标题中得到“…”,这是我不想要的。在所有的列标题中?你能给你的问题添加一个截图吗?我已经添加了截图。我的报告列取决于用户通过选择列表选择的值。列宽的设置对一个报表很有效,但会导致其他报表的列宽怪异。