在视图xe:pagerAddRows中显示新文档而不进行完全更新

时间:2014-08-04 04:32:48

标签: xpages

当user1看到带有xe:pagerAddRows的视图时,另一个user2会添加新文档。 user1单击xe:pagerAddRows并且看不到新文档。

  1. 如何使用点击xe:pagerAddRows在没有完整更新页面的情况下在视图中显示user1的新文档?
  2. 如何在没有点击和完整更新页面的情况下自动显示user2创建的user1的新文档?
  3. <xe:dataView
        id="dataView1"
        openDocAsReadonly="true"
        var="viewEntry"
        expandedDetail="true"
        style="margin-top:20.0px"
        repeatControls="true"
        rows="1">
        <xp:this.facets>
            <xp:panel
                xp:key="detail">
                <xp:text
                    escape="true"
                    style="font-family:Arial;margin-right:10.0px"
                    id="computedField1">
                    <xp:this.converter>
                        <xp:convertDateTime
                            type="date">
                        </xp:convertDateTime>
                    </xp:this.converter>
                    <xp:this.value><![CDATA[#{javascript:
                        var document : NotesDocument = viewEntry.getDocument();
                        return @Name('[CN]',document.getItemValue('Author'))
                    }]]></xp:this.value>
                </xp:text>
            </xp:panel>
            <xe:pagerAddRows
                xp:key="pagerBottomLeft"
                partialExecute="true"
                partialRefresh="true"
                refreshPage="false"
                id="pagerAddRows1"
                for="dataViewUtterance"
                state="true"
                rowCount="1"
                refreshId="ShowMoreUtterance"
                disabledFormat="link">
            </xe:pagerAddRows>
        </xp:this.facets>
        <xe:this.data>
            <xp:dominoView
                viewName="(Documents)"
                var="viewData"
                ignoreRequestParams="false"
                categoryFilter="#{javascript:
                    currentDocument.getDocument().getItemValueString('Flow')}"
                dataCache="id"
                scope="view">
            </xp:dominoView>
        </xe:this.data>
    </xe:dataView>
    

1 个答案:

答案 0 :(得分:1)

1

您可以刷新dataView,将onclick事件添加到xe:pagerAddRows。

<xe:pagerAddRows
    xp:key="pagerBottomLeft"
    for="dataView1"
    state="true"
    rowCount="2">
    <xp:eventHandler
        event="onclick"
        refreshMode="partial"
        refreshId="dataView1">
    </xp:eventHandler>
</xe:pagerAddRows>

这会导致视图刷新,并显示自上次刷新以来由其他用户创建的文档。

2

您可以借助客户端的计时器功能刷新视图。 setInterval()将每隔x秒执行一次函数。以下示例每5秒执行一次dataView1的部分刷新。只需将代码添加到XPage中即可。

<xp:scriptBlock
    id="scriptBlockRefresh">
    <xp:this.value>
            <![CDATA[
                setInterval(function() {
                    XSP.partialRefreshGet("#{id:dataView1}", {})
                }, 5 * 1000)
            ]]>
    </xp:this.value>
</xp:scriptBlock>

3

在我看来,您希望实时显示所有视图条目并自动展开视图。如果是这种情况,您可以更改排序顺序,以便最新文档显示在顶部。这样,通过自动刷新,您总能在第一页上看到最新的条目。