为动态视图面板参数使用编辑框值
Use edit box value for dynamic view panel parameter
我想做的是在 Xpage 上有一个编辑框、一个按钮和一个动态视图面板,在 Notes 数据库中有一个视图。然后在编辑框中输入文档 Id,当单击该按钮时,将使用编辑框值作为动态视图面板中过滤的参数。网上好像很少。我尝试将动态视图面板的 "Keys" 属性 设置为值
getComponent("inputDocumentID").getValue()
并让按钮进行完全刷新,但这不起作用。如何将编辑框用作动态视图参数?备注视图选择公式为;
SELECT ((Form = "Contract")) & (conContractStatus = "Cancelled") &
(initialstagecomplete = "1")
我通常使用作用域变量来执行此操作。这个想法是使用类似于 LotusScript 的 NotesViewEntryCollection.getEntriesByKey("keyFilter", False)
:
的机制
假设您有一个 Notes 视图,其中第一列按 UNID 排序(列公式 = @Text(@DocumentUniqueID)
)。
在您的 xpage 中,您一如既往地创建视图面板。 vp 的密钥 属性 设置为侦听这样的 requestScope 变量:
<xp:viewPanel id="viewPanel1">
<xp:this.data>
<xp:dominoView var="view1" viewName="myView"
keys="#{javascript:requestScope.keyFilter;}">
</xp:dominoView>
</xp:this.data>
...
</xp:viewPanel>
您在 Xpage 的其他地方创建了一个编辑框并将其绑定到您的 requestScope 变量,如下所示:
<xp:inputText id="inputText1" value="#{requestScope.keyFilter}">
<xp:eventHandler event="onkeyup" submit="true"
refreshMode="partial" refreshId="viewPanel1">
</xp:eventHandler>
</xp:inputText>
如您所见,每个输入都会立即存储在我的范围变量中,并且每个 keyup 事件都会在视图面板上执行部分刷新,从而在我键入时优化键过滤器。
备注:
如果您的视图面板带有寻呼机,请注意:如果您在 vp 未显示第 5 页时开始过滤,则应用关键过滤器可能会呈现空视图。原因是视图仍在显示第 5 页,但没有足够的数据显示在 5 页上。
解决方案同样非常简单:将几行服务器端脚本添加到编辑框的 onkeyup
事件中,从而将视图重置为显示第 1 页:
getComponent("viewPanel1").gotoFirstPage();
我想做的是在 Xpage 上有一个编辑框、一个按钮和一个动态视图面板,在 Notes 数据库中有一个视图。然后在编辑框中输入文档 Id,当单击该按钮时,将使用编辑框值作为动态视图面板中过滤的参数。网上好像很少。我尝试将动态视图面板的 "Keys" 属性 设置为值
getComponent("inputDocumentID").getValue()
并让按钮进行完全刷新,但这不起作用。如何将编辑框用作动态视图参数?备注视图选择公式为;
SELECT ((Form = "Contract")) & (conContractStatus = "Cancelled") &
(initialstagecomplete = "1")
我通常使用作用域变量来执行此操作。这个想法是使用类似于 LotusScript 的 NotesViewEntryCollection.getEntriesByKey("keyFilter", False)
:
的机制
假设您有一个 Notes 视图,其中第一列按 UNID 排序(列公式 = @Text(@DocumentUniqueID)
)。
在您的 xpage 中,您一如既往地创建视图面板。 vp 的密钥 属性 设置为侦听这样的 requestScope 变量:
<xp:viewPanel id="viewPanel1">
<xp:this.data>
<xp:dominoView var="view1" viewName="myView"
keys="#{javascript:requestScope.keyFilter;}">
</xp:dominoView>
</xp:this.data>
...
</xp:viewPanel>
您在 Xpage 的其他地方创建了一个编辑框并将其绑定到您的 requestScope 变量,如下所示:
<xp:inputText id="inputText1" value="#{requestScope.keyFilter}">
<xp:eventHandler event="onkeyup" submit="true"
refreshMode="partial" refreshId="viewPanel1">
</xp:eventHandler>
</xp:inputText>
如您所见,每个输入都会立即存储在我的范围变量中,并且每个 keyup 事件都会在视图面板上执行部分刷新,从而在我键入时优化键过滤器。
备注:
如果您的视图面板带有寻呼机,请注意:如果您在 vp 未显示第 5 页时开始过滤,则应用关键过滤器可能会呈现空视图。原因是视图仍在显示第 5 页,但没有足够的数据显示在 5 页上。
解决方案同样非常简单:将几行服务器端脚本添加到编辑框的 onkeyup
事件中,从而将视图重置为显示第 1 页:
getComponent("viewPanel1").gotoFirstPage();