2016-05-09 5 views
0

Ich habe eine kategorisierte Ansicht, die ich als Datenquelle für Ansichten in einer XPage verwende. Ich habe den categoryFilter der Datenquelle so eingestellt, dass nur die Anrufliste der ausgewählten Person (für einen bestimmten Vorfall) angezeigt wird. Der im sessionScope gespeicherte Filter ist eine Verkettung der UniqueID der Person und der IncidentID. Die Lookup-Ansicht wird nach diesem Wert kategorisiert.XPages Datenquelle und Grenzwert für einzelne Kategorie anzeigen

Man würde erwarten, dass zu arbeiten, aber die Filterung scheint nicht zu funktionieren und ich kann alle Anrufverläufe unabhängig von der Person, die ich wähle. Ich habe das schon einmal gemacht und ich muss etwas Offensichtliches vermissen.

Ich habe überprüft, dass die sessionScope.callHistoryID aktualisiert wird, während ich eine neue Person auswähle. Meine Anrufverlaufsdatenbank hat derzeit nur zwei Verlaufsdokumente für einen Gast, sie werden jedoch für jeden Gast auf der X-Seite angezeigt.

enter image description here

sessionScope.callHistoryID vom Debugger ist offensichtlich nicht das gleiche (siehe unten):

enter image description here

<xp:panel id="pnlCallHistoryModal" style="padding-bottom:20px"> 
<xp:this.data> 
    <xp:dominoView var="callhistoryView" 
     viewName="luCallHistorybyPaxandIncidentID" 
     databaseName="blah.nsf" 
     ignoreRequestParams="true" 
     categoryFilter="#{javascript:sessionScope.callHistoryID}"> 
    </xp:dominoView> 
</xp:this.data> 
<div class="col-xs-12 col-md-12 col-lg-12 panel-body"> 
      <xp:repeat id="repeat1" value="#{callhistoryView}" 
       var="viewRow" indexVar="rowIndex" rows="500" 
       repeatControls="false"> 
       <xp:this.facets> 
        <xp:text disableTheme="true" xp:key="header" 
         escape="false"> 
         <xp:this.value><![CDATA[ 
           <table class="table table-hover"> 
           <tbody>]]></xp:this.value> 
        </xp:text> 
        <xp:text disableTheme="true" xp:key="footer" 
         escape="false"> 
         <xp:this.value><![CDATA[ 
           </tbody> 
           </table>]]></xp:this.value> 
        </xp:text> 
       </xp:this.facets> 
       <xp:tr> 
        <xp:this.rendered><![CDATA[# {javascript:if(viewRow.isCategory()){ 
return false 
}else{ 
return true 
}}]]></xp:this.rendered> 
        <xp:td styleClass="col-md-10 col-lg-10 small"> 
         <xp:text escape="true" id="name"> 
          <xp:this.value><![CDATA[#{javascript:@ProperCase(viewRow.getColumnValue("CallerFullName"))}]]></xp:this.value> 
        </xp:text> 
         <br></br> 
         <xp:text escape="true" id="computedField1" 
          styleClass="small secondary-text"> 
          <xp:this.value><![CDATA[#{javascript:if(viewRow.getColumnValue("CallerMemo").length > 128){ 
return viewRow.getColumnValue("CallerMemo").substring(0,128) + " ..." 
}else{ 
return viewRow.getColumnValue("CallerMemo") 
}}]]></xp:this.value> 
         </xp:text> 
        </xp:td> 
        <xp:td styleClass="col-md-2 col-lg-2 small"> 
        <xp:text escape="true" id="creationdatetime" 
          styleClass="small"> 
          <xp:this.value><![CDATA[#{javascript:viewRow.getColumnValue("CallDateTime")}]]></xp:this.value> 
          <xp:this.converter> 
           <xp:convertDateTime type="both" 
            dateStyle="short" timeStyle="short"> 
           </xp:convertDateTime> 
          </xp:this.converter> 
        </xp:text>       
        </xp:td>  
       </xp:tr> 
      </xp:repeat> 
     </div> 
</xp:panel> 

Antwort

1

Ich vermute, das das Äquivalent von ViewNavigator.createViewNavFromCategory() tun werden. Es lohnt sich, zu überprüfen, wie sich das verhält, wenn der Kategoriename nicht existiert. Es kann zu einer Teilübereinstimmung zurückfallen.

Für "beschränken auf Kategorie", könnten Sie besser mit der keys Eigenschaft und Einstellungen keysExactMatch auf True platziert werden.

+0

Paul, ich habe es gerade versucht. Immer noch die gleichen Ergebnisse. \t \t \t \t \t –

+0

Paul, Ich glaube, ich sollte erwähnen, dass der Code, den ich oben gepostet in einem modalen ist, die geöffnet wird, wenn ich auf die Reihe von einem Klick wiederhole die Kontrolle. Ich fand, dass, wenn ich diesen Code zu einem neuen Test XPage bewegte, es gut funktioniert. Was könnte der Grund sein? Es scheint so, als ob das Modal vor der Sitzung geöffnet wird. Scope wird aktualisiert, sodass die Ansicht mit dem vorherigen Schlüssel gefüllt wird. –

+0

Ich würde erwarten, dass das Starten des Modales eine teilweise Aktualisierung auslösen muss, um die Variable sessionScoppe zu aktualisieren, dann müsste die Datenquelle im Aktualisierungsbereich sein. –

Verwandte Themen