2015-07-22 62 views
1

我使用Xpages和我的按鈕(它具有簡單的事件綁定到它)不會觸發,當我把它放在一個可視屬性在頁面上計算的面板中時加載。Xpages:如何將事件綁定到計算其可見性的按鈕

我該如何去做到這一點?

編輯:

想我應該澄清。持有按鈕的div使用: facesContext.getMessages()。hasNext()。 (這測試用戶是否驗證失敗)。

如果我設置呈現簡單地使用呈現= true,按鈕和它的代碼工作得很好。

感謝

回答

2

如果div的財產renderedfalse那麼完整的標籤不會被包含在HTML發送到瀏覽器,包括標籤內的所有元素。這就是爲什麼你的按鈕不在那裏,不能觸發任何事件。

style="display:none"添加到呈現div標記時必須隱藏div標記。

例子:

<xp:panel 
    id="panel1"> 
    <xp:this.attrs> 
     <xp:attr 
      name="style" 
      value="display:none" 
      rendered="#{javascript: ! facesContext.getMessages().hasNext()}"> 
     </xp:attr> 
    </xp:this.attrs> 
    <xp:button 
     value="Test" 
     id="button1"> 
    </xp:button> 
</xp:panel> 

呈現一種無形的div標籤,包括按鈕,如果! facesContext.getMessages().hasNext()是真的

<div id="view:_id1:panel1" style="display:none"> 
    <button class="xspButtonCommand" type="button" name="view:_id1:button1" 
      id="view:_id1:button1">Test 
    </button> 
</div> 

否則就可見

<div id="view:_id1:panel1"> 
    <button class="xspButtonCommand" type="button" name="view:_id1:button1" 
      id="view:_id1:button1">Test 
    </button> 
</div> 

在這兩種情況下,按鈕的事件可以通過執行。

+0

謝謝Knut,太棒了。正是我想要它做的。我不知道你可以計算渲染的屬性。 – user4372614

相關問題