2016-06-15 5 views
1

それはviewPanelにonClientLoadなeventHandlerを追加することが可能である:はのページ番号をキャッチポケットベルビーイングクリックさ

https://xcellerant.net/2013/01/14/viewpanel_onclientload

発射さonClientLoad内ポケットベルの結果をクリックします。

質問:クリックしたページャのページ番号をキャッチすることは可能ですか?

+1

あなたが/たいなぜ特定「ページが必要ページャの「番号」? –

+0

ナビゲーションソリューションでiframeに表示されているものを同期させるためです。たとえば、をクリックすると、ページごとに10個の記事が表示されます。ページ3では、トップ記事(番号21)をアクティブにして表示する必要があります。 –

答えて

1

XPageのonClientLoad CSJSコードのページャ内のすべてのページ番号にクリックイベントを追加します。
使用dojo.queryページャ内のすべてのタグを取得する:

dojo.query('[id$=pagerWithClickEvents] a').forEach(function(entry) { 
     entry.addEventListener("click", function() { 
      alert(this.innerHTML); 
     }); 
    }); 

enter image description here

これのXPageは、実施例である:

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view 
    xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:viewPanel 
     rows="3" 
     value="#{view1}" 
     id="viewPanel1"> 
     <xp:this.facets> 
      <xp:pager 
       partialRefresh="true" 
       layout="Previous Group Next" 
       xp:key="headerPager" 
       id="pagerWithClickEvents"> 
      </xp:pager> 
     </xp:this.facets> 
     <xp:this.data> 
      <xp:dominoView 
       var="view1" 
       databaseName="names.nsf" 
       viewName="People"> 
      </xp:dominoView> 
     </xp:this.data> 
     <xp:viewColumn 
      columnName="$17" 
      id="viewColumn1"> 
      <xp:viewColumnHeader 
       value="Name" 
       id="viewColumnHeader1"> 
      </xp:viewColumnHeader> 
     </xp:viewColumn> 
     <xp:viewColumn 
      columnName="$16" 
      id="viewColumn4"> 
      <xp:viewColumnHeader 
       value="E-Mail" 
       id="viewColumnHeader4"> 
      </xp:viewColumnHeader> 
     </xp:viewColumn> 
     <xp:eventHandler 
      event="onClientLoad" 
      submit="false"> 
      <xp:this.script><![CDATA[ 
      dojo.query('[id$=pagerWithClickEvents] a').forEach(function(entry) { 
       entry.addEventListener("click", function() { 
        alert(this.innerHTML); 
       }); 
      }); 
     ]]></xp:this.script> 
     </xp:eventHandler> 
    </xp:viewPanel> 
</xp:view> 
+1

ありがとう!それはうまく動作します。しかし、私はonClientLoad eventHandlerとしてviewPanel内にdojo.queryを追加しなければなりませんでした。それ以外の場合は、最初のクリックでのみ発生し、その後のクリックでは発生しませんでした。私の次のステップは、このCSJSからSSJSを起動させることです。 –

+0

ありがとう、これは私が逃した部分でした:) - 私は私の例のXPageを更新しました。これはビューパネルの内側のページャでも機能します。 –

関連する問題