2017-04-04 74 views
0

可以有人告訴我如何連接primefaces中的兩個或多個旋鈕?如何連接primefaces jsf

我的意思是這件事 https://www.primefaces.org/showcase/ui/input/knob.xhtml

我想有像 MAXVALUE = 100; knob2.value = MAXVALUE - knob1.value

所以如果我設置knob1較高另一個向下

<h3>Colors</h3> 
    <div class="knob-container ui-corner-all"> 
     <p:knob foregroundColor="red" backgroundColor="#00000" value="#{knobView.value}"> 
      <p:ajax listener="#{knobView.onChange}"/> 
     </p:knob> 
     <p:knob foregroundColor="blue" backgroundColor="#0000FF" value="#{knobView.value2}"> 
      <p:ajax listener="#{knobView.onChange}"/> 
     </p:knob> 
    </div> 

public void onChange(){ 
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, 
      "val1: " + value + " " + 
      "val2: " + value2   , null 
      )); 
    this.value2 = maxval - this.value; 

} 

編輯:附加 信息 我想有這樣的: 在啓動knob1 = 50;旋鈕2 = 50 我設置knob1至60和旋鈕2自動下降到40 我設置knob1至10和旋鈕2上升到90

+0

這是一個有點不清楚你想你可以請解釋更多呢? –

+0

添加您的onChange方法。 – jklee

+0

你想同時配對? – jklee

回答

1

使用2種的onChange方法和更新變化後的其他旋鈕。

XHTML

<div class="knob-container ui-corner-all"> 
    <p:knob id="knob_1" foregroundColor="red" backgroundColor="#00000" 
     value="#{knobView.value1}"> 
     <p:ajax listener="#{knobView.onChange1()}" update="knob_2" /> 
    </p:knob> 
    <p:knob id="knob_2" foregroundColor="blue" backgroundColor="#0000FF" 
     value="#{knobView.value2}"> 
     <p:ajax listener="#{knobView.onChange2()}" update="knob_1" /> 
    </p:knob> 
</div> 

@Named 
@SessionScoped 
public class KnobView implements Serializable { 

    int value1; 
    int value2; 
    int maxval = 100; 
    // getter & setter 

    public void onChange1() { 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, 
       "val1: " + value1 + " " + 
         "val2: " + value2, 
       null)); 
     this.value2 = maxval - value1; 
    } 

    public void onChange2() { 
     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, 
       "val1: " + value1 + " " + 
         "val2: " + value2, 
       null)); 
     this.value1 = maxval - value2; 
    } 

} 
+0

thx 我需要@ManagedBean(name =「knobView」)? 我還沒有到達喇嘛喇嘛沒有 但@命名+ @ ManagedBean 它的工作原理部分,也產生新的旋鈕圈,所以每次活動後,我得到了+1更 但數字是例如正確knob1 = 7,旋鈕2 = 25 我會調試它;)並閱讀更多關於@Named的信息 – w3Charlie

+0

'@ Named'用於綁定xhtml和bean。 '@ ManagedBean(name =「knobView」)'也可以,但'@ ManagedBean'是舊的解決方案。只使用一個。我主張'@ Named'和CDI Scope。 – jklee

+0

它與[廣告] ManagedBean(NAME =「knobView」) [廣告]命名 [廣告] SessionScoped 既但它是竊聽,因爲我應該只使用命名方式或管理 只有命名,我得到了「引起:javax.el.PropertyNotFoundException:/index.xhtml [ad] 18,39 value =「#{knobView.value1}」:目標不可達,標識符'knobView'解析爲null「 – w3Charlie