我要求列标题的宽度应与交互式网格中的文本长度一样。在我的报告中,将显示哪些列取决于用户将使用服务器端条件在选择列表中进行选择。
有什么方法可以实现?
截屏:
需要显示哪些列取决于用户通过DQ审核选择列表选择的值。
这不是很简单,但是以下内容应该对您有用...
首先,将以下函数添加到页面的函数和全局变量声明属性:
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
函数。
有两种定义列宽的方法:
您能设置列的宽度并让我知道是否适合您吗?