2016-05-09 16 views
0

私は、XPageでビューデータソースとして使用しているカテゴリビューを持っています。私は選択された個人(特定の事件について)の通話履歴のみが表示されるように、データソースのcategoryFilterを設定しました。 sessionScopeに格納されるフィルタは、PersonのUniqueIDとIncidentIDを連結したものです。ルックアップビューは、その値によって分類されます。XPagesでデータソースを表示し、単一のカテゴリに限定する

フィルタリングは機能していないと思われますが、私が選択した人物に関係なくすべての通話履歴を見ることができます。私はこれを前にやったことがあります。

私は新しい人物を選択するときにsessionScope.callHistoryIDが更新されていることを確認しました。私の通話履歴データベースは現在、1人のゲストに対して2つの履歴文書しか持っていませんが、Xpageのすべてのゲストに表示されます。

enter image description here

sessionScope.callHistoryIDデバッガから(下記参照)は明らかに同じではありません。

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> 

答えて

1

私はこれがViewNavigator.createViewNavFromCategory()と同等のものをやっているだろうと思います。カテゴリ名が存在しない場合、それがどのように機能するかを調べる価値があります。部分的に一致する可能性があります。

「カテゴリに限定」の場合は、keysプロパティを使用し、keysExactMatchをtrueに設定する方がよい場合があります。

+0

Paul、私はそれを試しました。それでも同じ結果が得られます。 \t \t \t \t \t –

+0

ポール、 私は上記の投稿のコードは、私がの行をクリックしたときに開いているモーダルであることを言及すべきであると仮定繰り返し制御。 私は、そのコードを新しいテスト用のXPageに移行したときにうまくいきました。理由は何でしょうか? ビューが前のキーによって移入されるように、session.Scopeが更新される前にモーダルが開かれているようです。 –

+0

私は、モーダルの起動がsessionScoppe変数を更新するために部分リフレッシュをトリガする必要があり、データソースがリフレッシュ領域にある必要があると思います。 –

関連する問題