只需检查是否有一种非常简单的方法可以固定视图标题,以便当您在 XPages 中的视图中向下翻页时,标题保持在原来的位置。position=Fixed
不是 的属性xp:viewColumnHeader
。
问问题
1299 次
3 回答
1
是的,这是可能的,但需要一些 JavaScript 编码。我最近使用以下代码为客户解决了这个问题。基本思想是从 TD 的第一行中获取列的宽度,然后将其应用于 TH 广告,然后将 TH 设置为固定。您也需要在部分更新后运行此功能。祝你好运。
var fixTableHeaders = function() {
var thead = dojo.query("thead")[0];
if (!thead) return;
thead.style.position = "static";
var THs = dojo.query('.xspDataTable th');
var firstTDs = dojo.query('.xspDataTable tr:first-child td');
var secondTDs = null;
if (firstTDs.length < 2) {
// categorized view, first line is a category with only one cell
// -> we need the second line
secondTDs = dojo.query('.xspDataTable tr:nth-child(2) td');
}
var w = 0;
for (var i = 0; i < THs.length; i++) {
w = dojo.coords(THs[i], true).w;
// console.log(i+" w="+w);
THs[i].style.width = (w)+"px";
if (firstTDs[i]) {
//if (secondTDs && secondTDs[i]) secondTDs[i].style.width = w+"px";
//else firstTDs[i].style.width = w+"px";
firstTDs[i].style.paddingTop = "3em";
}
}
thead.style.position = "fixed";
}
dojo.addOnLoad(fixTableHeaders);
于 2013-03-28T08:12:47.667 回答
1
如果要添加 to 的属性,position
可以xp:viewColumnHeader
使用该attrs
属性来执行此操作(适用于 8.5.3)。你的代码看起来像这样:
<xp:viewColumnHeader ......>
<xp:this.attrs>
<xp:attr name="position" value="fixed"></xp:attr>
</xp:this.attrs>
</xp:viewColumnHeader>
但我不认为仅凭这一点就可以解决问题。前段时间,我创建了一个 CSS 片段来在 Extension Library 的应用程序布局控件中制作浮动横幅、标题栏和位置栏。你可以从中得到一些想法。
于 2013-03-26T16:55:10.507 回答
0
前几天我看到了一些可以修复表头的 jQuery 代码。不记得它在哪里,但可以帮助你的东西应该在那里。
于 2013-03-27T18:17:19.013 回答