Получить Следующий Документ

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 790
42
#1
Есть вид с документами.
По клику открывается документ в диалоговом окне.
Как организовать навигацию из диалога по виду?
Нужно не закрывая диалог получить следующий или предыдущий документ
 

lionk

Well-Known Member
05.04.2007
310
3
#2
Как вариант выводить через репит контрол, с отображением одного дока и юзать свойство indexVar.
 

Zeka

Well-Known Member
01.09.2009
219
0
#3
Юзать ViewNamigator...

Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">


<xp:viewPanel rows="30" id="viewPanel1" var="row">
<xp:this.facets>
<xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"></xp:pager>
</xp:this.facets>
<xp:this.data>
<xp:dominoView var="view1" viewName="Log"></xp:dominoView>
</xp:this.data>
<xp:viewColumn columnName="$0" id="viewColumn1">
<xp:viewColumnHeader value="Created" id="viewColumnHeader1"></xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn id="viewColumn3" columnName="Text">
<xp:this.facets>
<xp:viewColumnHeader xp:key="header" id="viewColumnHeader3" value="Text"></xp:viewColumnHeader>
</xp:this.facets>
</xp:viewColumn>
<xp:viewColumn id="viewColumn2" displayAs="hidden">
<xp:this.facets>
<xp:viewColumnHeader xp:key="header" id="viewColumnHeader2"></xp:viewColumnHeader>
</xp:this.facets>
<xp:link escape="true" text="Show" id="link2">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete" id="eventHandler1">
<xp:this.action><![CDATA[#{java script:viewScope.put("unid", row.getUniversalID());getComponent("dialog1").show();}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:viewColumn>
</xp:viewPanel>




<xe:dialog id="dialog1">
<xp:panel id="panelDialog1">
<xp:this.data>
<xp:dominoDocument var="doc" action="openDocument">
<xp:this.documentId><![CDATA[#{java script:viewScope.get("unid")}]]></xp:this.documentId>
</xp:dominoDocument>
</xp:this.data>

<xp:div>
<xp:inputText id="inputText1" value="#{doc.text}"></xp:inputText>
</xp:div>

<xp:div>
<xp:link escape="true" text="Edit" id="link5" rendered="#{java script:!doc.isEditable()}">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:changeDocumentMode mode="edit"></xp:changeDocumentMode>
</xp:this.action>
</xp:eventHandler>
</xp:link>
<xp:link escape="true" text="Save" id="link6" rendered="#{java script:doc.isEditable()}">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="panelDialog1">
<xp:this.action>
<xp:actionGroup>
<xp:saveDocument></xp:saveDocument>

<xp:changeDocumentMode mode="readOnly"></xp:changeDocumentMode>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:div>

<xp:div>
<xp:link escape="true" text="Prev" id="link4">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="panelDialog1">
<xp:this.action><![CDATA[#{java script:var nav:ViewNavigator = database.getView("Log").createViewNav();
nav.gotoEntry(doc.getDocument());
var entry:ViewEntry = nav.getPrevDocument();
if(entry != null) {
viewScope.put("unid", entry.getUniversalID());		
}
}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
<xp:link escape="true" text="Next" id="link3">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{java script:var nav:ViewNavigator = database.getView("Log").createViewNav();
nav.gotoEntry(doc.getDocument());
var entry:ViewEntry = nav.getNextDocument();
if(entry != null) {
viewScope.put("unid", entry.getUniversalID());		
}}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:div>

</xp:panel>
</xe:dialog>
</xp:view>
 

lionk

Well-Known Member
05.04.2007
310
3
#4
Если в представлении буде хоть какая то фильтрация (например поиск) то корректно листать по результатам не будет.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 790
42
#5
Если в представлении буде хоть какая то фильтрация (например поиск) то корректно листать по результатам не будет.
есть фильтр по категории. отображаю через репитер

Добавлено:
Как вариант выводить через репит контрол, с отображением одного дока и юзать свойство indexVar.
Тогда уже не indexVar, а first