Мне предоставлен проект XPages, который я не разработал. Проект имеет OneUILayout, который включает в себя панель поиска «фасет». Можно ли закодировать фильтр на фасбеле панели поиска, чтобы исключенные записи были опущены, у которых есть поле с определенным значением. У меня очень мало опыта работы с XPages. Результаты поиска выводятся на OneUI_searchpage.xsp, где поле редактирования отображает строку поиска, а затем динамическую панель просмотра показывает извлеченные записи. Я приложил исходный код для этих двух пунктов ниже. СпасибоМогу ли я фильтровать строку поиска Xpages
<xp:label value="Search String:" id="label1"></xp:label>
<xp:inputText id="inputText1" value="#{param.search}"></xp:inputText>
<xp:panel id="maincontentpanel">
<xe:dynamicViewPanel rows="30" id="dynamicViewPanel1"
width="100%">
<xe:this.data>
<xp:dominoView viewName="ContractsFlatByYear"
var="view">
<xp:this.search><![CDATA[#{javascript:return
param.search;}]]></xp:this.search>
</xp:dominoView>
</xe:this.data>
</xe:dynamicViewPanel>
После некоторых консультаций с stwissel ниже, я внес изменения в приложение, чтобы иметь флажок на результаты поиска XPage с ним проверяется по умолчанию и создал дополнительный вид на тот же выход. Один вид, чтобы показать отмененные контракты, и один, чтобы опустить отмененные контракты. Соответствующий раздел Xpage теперь выглядит следующим образом:
<xp:checkBox text="Omit Cancelled Contracts"
id="OmitCancelled" defaultChecked="true" checkedValue="True"
uncheckedValue="False" style="padding-left:5.0em" value="#
{viewScope.viewSel}">
<xp:eventHandler event="onchange" submit="true" refreshMode="partial"
refreshId="dynamicViewPanel1"></xp:eventHandler>
</xp:checkBox>
<xp:panel id="maincontentpanel">
<xe:dynamicViewPanel rows="30" id="dynamicViewPanel1"
width="100%" partialRefresh="true">
<xe:this.data>
<xp:dominoView var="view">
<xp:this.viewName>
<![CDATA[#{javascript:var cancelledYesNo = viewScope.viewSel
= getComponent("OmitCancelled").getValue();
if(cancelledYesNo == "True"){
viewName = "ContractsFlatByYear"}
else {
viewName = "ContractsFlatByYearandCancelled"}}]]>
</xp:this.viewName>
<xp:this.search><![CDATA[#{javascript:return param.search;}]]
></xp:this.search>
</xp:dominoView>
</xe:this.data>
</xe:dynamicViewPanel>
Это, кажется, работает, но у меня есть флажок OnChange событие для применения частичного обновления на dynamicviewpanel но только освежает, когда я нажимаю на самом dynamicviewpanel только
Спасибо так много за ваш ответ. Таким образом, «фасеты» не могут быть изменены, это правильно? Я посмотрю на ваши два варианта и посмотрю, что я могу сделать. В основном записи - это Контракты с полем conContractStatus, и я хочу опустить те, которые являются conContractStatus = Отменены. – AJF
Вы можете изменить содержимое грани. Но ваш случай может быть на самом деле намного проще. Проверьте код, который выполняет поиск: может быть db.ftsearch или view.ftsearch в более позднем случае просто изменит формулу выбора вида, в первом переключателе на поиск вида. Btw. Если вы отправляете образец кода, то ответы меньше догадок – stwissel
Я добавил несколько исходных кодов для страницы вывода результатов поиска. Все еще смотря – AJF