只是检查是否有一种非常简单的方法可以修复视图标题,这样当你在XPages的视图中向下翻页时,标题就会保持原样。 position=Fixed
不是xp:viewColumnHeader
的属性。
答案 0 :(得分:1)
如果要将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>
但我不认为仅凭这一点就可以解决问题。一段时间后,我创建了一个到make floating Banner, Title Bar and Place Bar in Application Layout control of Extension Library的CSS片段。你可以从中得到一些想法。
答案 1 :(得分:1)
是的,这是可能的,但需要一些JavaScript编码。 我最近使用以下代码解决了这个问题。基本思路是将列的宽度从TD的第一行中移出,然后将其应用于THs广告,然后将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);
答案 2 :(得分:0)
前几天我看到了一些可以修复表头的jQuery代码。不记得它在哪里,但可以帮助你的东西应该在那里。