좋아요, 다음은이 문제에 접근 한 방법입니다. 전 일반 뷰 데이터 소스로 데이터보기를 사용하고 있습니다.
필드에 무언가를 입력하면 "startKeys"속성을 사용하여 적절한 항목으로 이동합니다. 검색 필드에는 부울 값인 "viewMoveTo"를 true로 설정하는 onFocus 이벤트가 있습니다. 이 값을 bean 또는 sessionScope에 저장하거나 중요하지 않은 곳에 저장할 수 있습니다. 데이터보기의 부분 새로 고침을 수행하는 또 다른 이벤트가 onKeyUp입니다.
검색 버튼을 클릭하면 데이터보기에서 "검색"속성을 사용하여 FT 검색을 수행합니다. 검색 버튼의 onClick 이벤트에서 "viewMoveTo"값을 false로 설정합니다. 여기
<xp:inputText
id="viewSearchField1"
value="#{UserProfile.viewSearchStr}"
styleClass="form-control rpdViewSearchField">
<xp:this.attrs>
<xp:attr name="placeHolder" value="Search"></xp:attr>
</xp:this.attrs>
<xp:eventHandler
event="onfocus"
submit="true"
refreshMode="norefresh"
action="#{javascript:UserProfile.setViewMoveTo(true);}">
</xp:eventHandler>
<xp:eventHandler
event="onkeyup"
submit="true"
refreshMode="partial"
refreshId="dataView1">
</xp:eventHandler>
</xp:inputText>
검색 버튼에 대한 코드입니다 :
<xp:link id="link2" title="Perform Search">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="dataView1"
action="#{javascript:UserProfile.setViewMoveTo(false);}">
</xp:eventHandler>
<i class="fa fa-search" />
</xp:link>
그리고 마지막으로 여기에 데이터 뷰에 대한 데이터 소스 코드입니다 :
<xe:this.data>
<xp:dominoView
var="currentView"
expandLevel="1"
viewName="#{javascript:return PortalContext.getCollection() != null ? PortalContext.getCollection().getViewName() : null;}"
databaseName="#{javascript:return DesktopContext.getCurrentContainer().getFilePath();}">
<xp:this.startKeys><![CDATA[#{javascript:var returnVal = UserProfile.getViewSearchStr();
if (!UserProfile.getViewFTSearch()) {
returnVal = null;
}
return returnVal;}]]></xp:this.startKeys>
<xp:this.search><![CDATA[#{javascript:var returnVal = UserProfile.getViewSearchStr();
if (UserProfile.getViewFTSearch()) {
returnVal = null;
}
return returnVal;}]]></xp:this.search>
</xp:dominoView>
</xe:this.data>
다음은 필드 내 코드입니다
이렇게하면 사용자가 검색 필드에 커서를 놓고 'viewMoveTo'변수가 설정됩니다. onFocus 이벤트를 통해 true로 설정합니다. 데이터 소스의 "startKeys"속성은 "viewMoveTo"가 false인지 확인하고, 그렇지 않으면 검색 필드의 값을 이동할 키로 반환합니다. viewMoveTo 값이 false이면 null 값을 반환합니다. onKeyUp 이벤트에서 데이터 뷰를 부분적으로 새로 고칩니다.
검색 버튼은 그 반대입니다. "viewMoveTo"의 값을 false로 설정합니다. 데이터 소스의 "검색"속성은 "viewMoveTo"가 true인지 확인하고, 그렇지 않으면 검색 필드의 값을 검색 할 값으로 반환합니다. viewMoveTo 값이 true이면 null 값을 반환합니다. 마지막으로 onclick 이벤트는 데이터 뷰의 부분 새로 고침을 수행합니다.
불행히도 FT 쿼리에 필터 조건을 추가하는 것보다 나은 솔루션을 찾지 못했습니다. –