XPages-是否可以使视图列标题固定?

XPages-是否可以使视图列标题固定?,xpages,Xpages,只需检查是否有一种非常简单的方法来固定视图标题,以便在XPages中向下翻页视图时,标题保持在原来的位置position=Fixed不是xp:viewColumnHeader的属性。如果要将position的属性添加到xp:viewColumnHeader中,可以使用attrs属性(适用于8.5.3)。您的代码将如下所示: <xp:viewColumnHeader ......> <xp:this.attrs> <xp:attr name="

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

的属性。如果要将
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代码片段,用于。你可以从中得到一些想法。

前几天我看到了一些jQuery代码,可以修复表头。不记得它在哪里,但可以帮助您的东西应该在那里。

是的,这是可能的,但需要一些JavaScript编码。 我最近用以下代码为一位客户解决了这个问题。基本思想是将列的宽度从TDs的第一行计算出来,然后将其应用于THs ad,然后将THs设置为固定。 您还需要在部分更新后运行此函数。祝你好运

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); 
var fixTableHeaders=function(){
var thead=dojo.query(“thead”)[0];
如果(!thead)返回;
thead.style.position=“静态”;
var THs=dojo.query('.xspDataTable th');
var firstTDs=dojo.query('.xspDataTable tr:first-child-td');
var secondTDs=null;
如果(第一个TDS.长度<2){
//分类视图,第一行是一个只有一个单元格的类别
//->我们需要第二条线路
secondTDs=dojo.query('.xspDataTable tr:nth child(2)td');
}
var w=0;
对于(变量i=0;i
成功了!我只是将视图中的类名替换为
xspDataTableViewPanel
,只是做了一些调整。谢谢:)