2013-06-12 2 views
2

Я работаю с Контроллер Apex и страница Visual Force. Внутри страницы ФЖ у меня была таблица данных и каждая строка этой таблицы связывается с значением из списка, который генерируется из контроллера Пример кода:apex: inputField Binding Значение не обновлено

<apex:dataTable value="{!List}" var="item" styleClass="class1" > 
... 
<apex:column headerValue="Header1">  
    <apex:outputpanel rendered="{!NOT((a=='true'))}"> 
    <div class='estimate-name-column'>       
     <apex:inputField value="{!item.Name}" required='true' rendered="{!(a=='false')}"/> 
     </div>   
    </apex:outputpanel>  
</apex:column> 
... 
</apex:datatable> 

Как вы можете видеть, я пытался скрыть некоторые входные поля основываются на некоторых условиях.

Однако возникла проблема. Если я делаю это выше, те входные поля, которые получают рендеринг, не были правильно привязаны. После отправки формы с этой таблицей данных внутри моего контроллера все записи «в списке Name: null. Хотя я видел, что «Имя» было отправлено в http-запросе.

Я предполагаю, что это мешает привязке? потому что, если я удалю переизлученные условия и покажу все InputField, я могу получить значения внутри контроллера после отправки формы

любые идеи, что произошло?

ответ

2

Если я правильно напомнил, что тег apex должен присутствовать на странице, чтобы быть повторно зарегистрированным.

Другими словами - что-то (возможно, так просто, как <span id="long:generated:salesforce:id"></span>) должно быть в HTML, чтобы позднее обновлять AJAX для ввода нового содержимого в местозаполнитель. Если это не отображается, это будет оставаться не оказаны. (1)

Вместо rendered попытаться переместить условие style или styleclass атрибутов. Что-то вроде

<apex:inputField value="{!item.Name}" 
    required="{!a=='false'}" 
    style="display:{!IF(a=='false','inline', 'none')}"/> 

visibility:hidden (если вы хотите, чтобы занять свое место, но не видно) или display:none (чтобы они, кажется, совсем не там Смотрите также What is the difference between visibility:hidden and display:none?


Сноска.

(1), если вы, конечно, не будете переписывать тег, содержащий этот «тег» (что-то более высокое в XML).

+0

Спасибо! Именно так я и сделал решить проблему. Я сделал шоу/спрятал css! – bluecatkaka

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