Xpages viewScope 对重复控制列进行排序
Xpages viewScope to sort a repeat control column
我正在尝试单击 link 并使用具有完整 SSJS 刷新的 viewScope 重复按列对视图进行排序(还尝试在重复控件上进行部分刷新,在 table 在整个事物的内部和面板上)。当我点击它时,它正在释放重复控件并清除数据。我究竟做错了什么?不可避免地,我想在重复面板 header 方面的 header 中使用它。
<xp:link escape="true" text="Sort by DoorName" id="link1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:viewScope.put("col","DoorName")}]]></xp:this.action>
</xp:eventHandler></xp:link>
<xp:panel style="width:99.0%">
<xp:repeat id="repeat2" rows="500" var="rowdoc2"
repeatControls="true" value="#{view2}">
<xp:this.facets>
<xp:text disableTheme="true" xp:key="header"
escape="false">
<xp:this.value>
<![CDATA[<table class="simple">
<th style="width:200px">TITLE</th>
<th style="width:200px">2nd HEADER</th></table>]]>
</xp:this.value>
</xp:text>
</xp:this.facets>
<xp:table style="width:100.0%" styleClass="simple">
<xp:tr>
<xp:td style="width:200px">
<xp:text escape="true" id="computedField2"
value="#{rowdoc2.DoorName}">
</xp:text>
</xp:td>
<xp:td style="width:200px">
<xp:text escape="true" id="computedField1"
value="#{rowdoc2.DoorDesc}">
</xp:text></xp:td>
</xp:tr>
</xp:table>
</xp:repeat>
</xp:panel>
编辑>>>>>我将 "col" XPAGE 数据的排序列计算值放入。也许这是不正确的部分。
<xp:this.data>
<xp:dominoView var="view2" viewName="Doors">
<xp:this.sortColumn><![CDATA[#{javascript:viewScope.get("col")}]]></xp:this.sortColumn>
</xp:dominoView>
</xp:this.data>
只需删除 repeat 的 属性 repeatControls="true"
,它将按预期工作。
这 属性 导致重复组件仅在页面加载时呈现。你可以找到一个很好的解释here
我正在尝试单击 link 并使用具有完整 SSJS 刷新的 viewScope 重复按列对视图进行排序(还尝试在重复控件上进行部分刷新,在 table 在整个事物的内部和面板上)。当我点击它时,它正在释放重复控件并清除数据。我究竟做错了什么?不可避免地,我想在重复面板 header 方面的 header 中使用它。
<xp:link escape="true" text="Sort by DoorName" id="link1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:viewScope.put("col","DoorName")}]]></xp:this.action>
</xp:eventHandler></xp:link>
<xp:panel style="width:99.0%">
<xp:repeat id="repeat2" rows="500" var="rowdoc2"
repeatControls="true" value="#{view2}">
<xp:this.facets>
<xp:text disableTheme="true" xp:key="header"
escape="false">
<xp:this.value>
<![CDATA[<table class="simple">
<th style="width:200px">TITLE</th>
<th style="width:200px">2nd HEADER</th></table>]]>
</xp:this.value>
</xp:text>
</xp:this.facets>
<xp:table style="width:100.0%" styleClass="simple">
<xp:tr>
<xp:td style="width:200px">
<xp:text escape="true" id="computedField2"
value="#{rowdoc2.DoorName}">
</xp:text>
</xp:td>
<xp:td style="width:200px">
<xp:text escape="true" id="computedField1"
value="#{rowdoc2.DoorDesc}">
</xp:text></xp:td>
</xp:tr>
</xp:table>
</xp:repeat>
</xp:panel>
编辑>>>>>我将 "col" XPAGE 数据的排序列计算值放入。也许这是不正确的部分。
<xp:this.data>
<xp:dominoView var="view2" viewName="Doors">
<xp:this.sortColumn><![CDATA[#{javascript:viewScope.get("col")}]]></xp:this.sortColumn>
</xp:dominoView>
</xp:this.data>
只需删除 repeat 的 属性 repeatControls="true"
,它将按预期工作。
这 属性 导致重复组件仅在页面加载时呈现。你可以找到一个很好的解释here