#salesforce #apex-code
#salesforce #apex-code
Вопрос:
У меня есть страница VF, на которой есть всплывающее окно для приема нескольких полей.
Когда я запускаю страницу и заполняю поля, я вижу, что фиксируются только некоторые значения полей, другие возвращаются как null. Я перепроверил имена полей, они совпадают. Есть идеи, почему это могло произойти?
<apex:outputPanel id="tstpopup1">
<apex:outputPanel styleClass="popupBackground" layout="block" rendered="{!displayPopUp}"/>
<apex:outputPanel styleClass="custPopup" layout="block" rendered="{!displayPopUp}">
<apex:pageblock >
<apex:pageblocksection >
<apex:pageblocksectionitem >
<apex:outputlabel value="Project: " />
<apex:inputfield id="proj" value="{!AC.Project__c}" />
</apex:pageblocksectionitem><p/>
<apex:pageblocksectionitem >
<apex:outputlabel value="Start Date: " />
<apex:inputfield id="sd" value="{!AC.Start_Date__c}" />
</apex:pageblocksectionitem>
<apex:pageblocksectionitem >
<apex:outputlabel value="End Date: " />
<apex:inputfield id="ed" value="{!AC.End_Date__c}" />
</apex:pageblocksectionitem>
<apex:pageblocksectionitem >
<apex:outputlabel value="C85 Project Lead: " />
<apex:inputfield id="pl" value="{!AC.C85_Project_Lead__c}" />
</apex:pageblocksectionitem>
<apex:pageblocksectionitem >
<apex:outputlabel value="Daily Charge Rate of Consultant: " />
<apex:inputfield id="charge" value="{!AC.Daily_Charge_Rate_of_Consultant__c}" />
</apex:pageblocksectionitem>
<apex:pageblocksectionitem >
<apex:outputlabel value="Project Role Title: " />
<apex:inputfield id="role" value="{!AC.Project_Role_Title__c}" />
</apex:pageblocksectionitem>
<apex:pageblocksectionitem >
<apex:outputlabel value="Overtime Allowed: " />
<apex:inputfield id="overtime" value="{!AC.overtime_allowed__c}" />
</apex:pageblocksectionitem>
</apex:pageblocksection>
<apex:commandbutton value="Assign to a New Project" action="{!assign}" />
<apex:commandbutton value="Cancel" action="{!closePopup}" immediate="true" /><br/><br/><br/>
</apex:pageblock>
</apex:outputPanel>
Класс имеет это
public Assigned_Consultant__c AC{
get{
if (AC == null) AC = new Assigned_Consultant__c();
return AC;
}
set;
}
public PageReference assign()
{
system.debug('Role title ...........................' AC.Project_Role_Title__c); // this is returning null
system.debug('Day charge ...........................' AC.Daily_Charge_Rate_of_Consultant__c); this has value filled
system.debug('overtime_allowed__c ...........................' AC.overtime_allowed__c); // this is returning null
// Project_Role_Title__c
displayPopup = false;
system.debug('inside assign...........................3');
system.debug('AC.................' AC);
}
Комментарии:
1. Я предполагаю, но, может быть, это разрешения в профиле?
2. Возможно, некоторые поля ввода не соответствуют типам полей объекта? Или они могут быть доступны только для чтения.
Ответ №1:
Это руководство немного устарело, но я думаю, оно может помочь объяснить некоторые проблемы, связанные с тем, что вы пытаетесь сделать: Руководство: Модальные диалоги в Visualforce.
«Создать ссылку или кнопку для всплывающего окна новой страницы Visualforce на самом деле довольно просто, и разместить это всплывающее окно над текущей страницей также довольно просто. Проблема возникает, когда вы хотите собрать информацию во всплывающем окне и передать эту информацию обратно на страницу, которая запустила всплывающее окно.»