0

XPages のビューでページダウンしてもヘッダーがそのままの位置に留まるように、ビューヘッダーを固定する非常に簡単な方法があるかどうかを確認するだけです。position=Fixedのプロパティではありませんxp:viewColumnHeader

4

3 に答える 3

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>

しかし、それだけではうまくいかないと思います。しばらく前に、Extension Library の Application Layout コントロールでフローティング バナー、タイトル バー、プレイス バーを作成する CSS スニペットを作成しました。そこからいくつかのアイデアを得ることができます。

于 2013-03-26T16:55:10.507 に答える
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 に答える
0

先日、テーブル ヘッダーを修正できる jQuery コードを見ました。それがどこにあったか覚えていませんが、あなたを助けることができる何かがそこにあるはずです.

于 2013-03-27T18:17:19.013 に答える