0

只需检查是否有一种非常简单的方法可以固定视图标题,以便当您在 XPages 中的视图中向下翻页时,标题保持在原来的位置。position=Fixed不是 的属性xp:viewColumnHeader

4

3 回答 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 回答