2017-09-19 60 views
0

我新的自動進稿器,我想顯示/使能輸入文本框時複選框被選中,當它未被選中下面的複選框ADF的代碼,我應該禁用,ADF輸入文本啓用

ADF代碼:

<af:selectBooleanCheckbox label="Apply WITSML Filter" id="sbc11" 
autoSubmit="true" contentStyle="margin-left:10px;" valueChangeListener="#{pageFlowScope.welljobs_bean.applyWITSMLFilterIndicator}"/> 

豆:

private transient RichSelectBooleanCheckbox applyWITSMLFilterIndicator; 
    public void setapplyWITSMLFilterIndicator(RichSelectBooleanCheckbox applyWITSMLFilterIndicator) { 
     this.applyWITSMLFilterIndicator= applyWITSMLFilterIndicator; 
    } 

    public RichSelectBooleanCheckbox getapplyWITSMLFilterIndicator() { 
     return applyWITSMLFilterIndicator; 
    } 

輸入文本我想表明:

<af:inputText id="it140" autoComplete="off" 
binding="#{pageFlowScope.welljobs_bean.applyWITSMLFilterIndicator.curvesFilter}" 
dimensionsFrom="content" editable="inherit" rendered="true"/> 

豆:

private transient RichInputText curvesFilter; 
     public void setCurvesFilter(RichInputText curvesFilter) { 
      this.curvesFilter = curvesFilter; 
     } 
     public RichInputText getCurvesFilter() { 
      return curvesFilter; 
     } 

任何人可以請幫助? 它也給我javax.faces.FacesException:javax.el.PropertyNotFoundException:類'java.lang.String'沒有屬性'curvesFilter'。異常

+0

您可以添加jsf複選框代碼和關聯的java bean嗎? – MrAdibou

+0

我已將它們添加到問題中,請檢查它們 – SaiCharan

+0

您還可以添加要更改的inputText jsf嗎?我將在代碼中向您展示它更容易 – MrAdibou

回答

0

您可以使用EL表達式,部分觸發器/自動提交和ValueChangeEvent執行此操作。

您希望將checkedbox的布爾值保存在您的bean內部,以便當valueChangeEventListener內的值發生更改時,您可以呈現或禁用inputText。

然後你要刷新的inputText所以它會顯示其新加入下列屬性的inputText的父渲染/禁用值:當一個動作發生

partialTriggers="sbc11" 

partialTriggers刷新容器的全部內容在你給他的元素ID上。

假設要禁用/啓用的inputText:

豆:

public boolean checkboxIsChecked = false; //or private with getter and setter 
public void checkBoxValueChange(ValueChangeEvent ve){ 
    this.checkboxIsChecked = ve.getNewValue(); 
} 

JSF:

<af:selectBooleanCheckbox label="Apply WITSML Filter" id="sbc11" 
autoSubmit="true" contentStyle="margin-left:10px;" valueChangeListener="# 
{pageFlowScope.welljobs_bean.checkBoxValueChange}"/> 

... 

<af:inputText id="it140" autoComplete="off" 
binding="#{pageFlowScope.welljobs_bean.applyWITSMLFilterIndicator.curvesFilter}" 
dimensionsFrom="content" disabled="#{pageFlowScope.welljobs_bean.checkboxIsChecked}"/> 

不要忘記將partialTriggers = 「CHECKBOXID」 添加到inputText父容器

有關官方示例,請參閱文檔:https://docs.oracle.com/cd/E16764_01/web.1111/b31973/af_lifecycle.htm#CIAHCFJF

+0

如何對此進行相應操作 SaiCharan

+0

@SaiCharan只需添加checkBoxValueChange到你的bean,改變valueChangeListener是valueChangeListener =「#{ pageFlowScope.welljobs_bean。checkBoxValueChange}「正如我在答案中所述 – MrAdibou

+0

沒有得到你,請你詳細說明一下嗎? – SaiCharan