Primefaces 5 datascroller - 使用Javascript设置scrollHeight

时间:2014-11-13 09:50:31

标签: javascript jquery jsf primefaces

我使用的是Primefaces 5,并设置了一个LazyLoaded数据滚动条,如下所示

<p:dataScroller value="#{controller.dataModel}" var="item" chunkSize="10" lazy="true" mode="inline" scrollHeight="100" id="scroller">
</p:dataScroller>

我希望将dataScroller scrollHeight设置为占用页面空间的完整高度,我可以通过JavaScript获得该空间,而不是固定大小为100。

我已经绑定了窗口调整大小的方法来重新计算大小并设置它并且这可行,但我不能在最初设置它。

设置它的javascript看起来像这样

$("#scroller > div").css("height", $("#main").height());

我在使用

的组件之后调用它
<h:outputScript>
    $("#scroller > div").css("height", $("#main").height());
</h:outputScript>

如上所述,如果我调整窗口大小而不是最初渲染组件时,这是有效的。

1 个答案:

答案 0 :(得分:1)

有两件事可能是错的。让id="scroller"不会使用id =&#34呈现组件;滚动条&#34;相反,它会预先添加一个组件ID,例如id="form:scroller"或类似id="j_idt19:scroller"的通用内容。所以可能你的选择器不好。但是,如果它在调整大小时应用,则可能是您很好地匹配组件,在这种情况下,您的问题可能是由组件加载但尚未准备好引起的。无论哪种方式,以下都应该修复它

        <h:outputScript>
            $(function() {$(".ui-datascroller-content").css("height", "200px");});
        </h:outputScript>

如果你确定那不是问题,你可以更改选择器