2013-03-03 1 views
0

У меня есть selectOneMenu и dataTable. Когда я изменю выбранное значение, dataTable будет заселен. Один из столбцов dataTable - inputText. Проблема в том, что поле inputText не вызывает getter, но кэширует предыдущее значение.Предотвращение значений кеша в браузере

Я хочу либо вызвать getter силой, либо установить inputText, чтобы не кэшироваться. Как избавиться от этой проблемы?

<h:body> 
    <f:view> 
     <h:form id="headForm"> 

      <ice:selectOneMenu id="item" 
        value="#{outerBean.selectedItem}" 
        valueChangeListener="#{outerBean.itemListValueChanged}" 
        style="width: 158px;" required="true" 
        label="Supplier Id" partialSubmit="true"> 
        <f:selectItems value="#{outerBean.itemList}" /> 
      </ice:selectOneMenu> 

      <ice:dataTable id="pdet" value="#{outerBean.nestedClassList}" var="nestedObject" rendered="true"> 

       <ice:column> 
       <f:facet name="header">Order Number</f:facet> 
        <ice:outputText value="#{nestedObject.orderNumber}" /> 
       </ice:column> 

       <ice:column> 
       <f:facet name="header">Qty</f:facet> 
        <ice:inputText value="#{nestedObject.qty}" id="qty" label="'Qty' FOR 'Order Number':#{nestedObject.orderNumber} " 
            partialSubmit="true" 
            valueChangeListener="#{nestedObject.qtyChanged}" 
            validator="#{nestedObject.validateQty}"> 
        </ice:inputText> 
       </ice:column> 
      </ice:dataTable> 
     </h:form> 
    </h:view> 

public class OuterBean{ 

    private List<String> itemList = new ArrayList<String>(); 
    private String selectedItem; 

    private List<NestedClass> nestedClassList = new ArrayList<NestedClass>(); 

    public OuterBean(){ 
     //init values 
    } 

    public void itemListValueChanged(ValueChangeEvent e){ 
     selectedItem = (String)e.getNewValue(); 

     //reset the dataTable record list 
     nestedClassList = getRandomRecords(); 
    } 

    //---getters-setters-----// 

    private class NestedClass{ 

     private int orderNumber; 
     private int qty; 

     NestedClass(){ 
      orderNumber = generateOrderNumber(); 
      qty = getRandomQty(); 
     } 

     //-----qtyChangedListener----// 
     //-----qtyValidator----------// 
     //-----getters-setters-------// 
    } 
} 
+0

Для уточнения информации - нам показать фрагменты кода –

+0

добавленных фрагментов кода – sura2k

ответ

0

Я не вижу, где вы chainging nestedObject.qty в itemListValueChanged

компонент не будет засавить, если оно не будет изменено.

Частичная отправка в Icefaces будет обновлять компоненты, значение которых изменилось.

Вы можете сделать Partial Submit false на selectonemenu или вы можете повторно инициализировать значение inputText в itemListValueChanged.

+0

Я добавляю список 'nestedObject'. Таким образом, каждый 'nestedObject' имеет свойство' qty'. Так что это новое значение. – sura2k

+0

вы можете отслеживать запросы получения-обновления, которые будут вызываться Icefaces для обновления монитора. Какую версию ледяных поверхностей вы используете? –

 Смежные вопросы

  • Нет связанных вопросов^_^