некоторые поля не сохраняются на странице VF

#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 на самом деле довольно просто, и разместить это всплывающее окно над текущей страницей также довольно просто. Проблема возникает, когда вы хотите собрать информацию во всплывающем окне и передать эту информацию обратно на страницу, которая запустила всплывающее окно.»