0
我試圖創建我的第一個VF頁面。這是一個行項輸入表單,允許用戶在單擊保存之前輸入多個子記錄(Enfants_ c)。現在,我從父母的自定義按鈕打開音頻頁面(確保 _c)。但是,當頁面打開時,父項的查找字段未填充 - 因此用戶必須單擊查找以從Assure__c中選擇父項。有沒有辦法將上一頁的父ID傳遞給VF頁面上的新子記錄?將父標識傳遞給VisualForce頁面中的子記錄
//page
<apex:page standardController="Enfants__c" extensions="insererEnfants" standardStylesheets="true">
<apex:sectionHeader title="Ajouter un enfant"
subtitle="{!$User.FirstName}" help="/help/doc/user_ed.jsp?loc=help"></apex:sectionHeader>
<apex:form >
<apex:pageBlock title="Nouveau enfant" id="thePageBlock" mode="edit">
<apex:pageBlockButtons >
<apex:commandButton action="{!save}" value="Enregistrer"></apex:commandButton>
<apex:commandButton action="{!cancel}" value=" Annuler "></apex:commandButton>
</apex:pageBlockButtons>
<apex:pageBlockTable value="{!accts}" var="a" id="table">
<apex:facet name="footer">
<apex:commandLink value="Ajouter" action="{!addRow}" rerender="table,error"/>
</apex:facet>
<apex:facet name="header">
<apex:commandLink value="Supprimer" action="{!deleteRow}" rerender="table,error"/>
</apex:facet>
<apex:column headerValue="Nom">
<apex:inputField/> value="{!a.Parent__c}"/>
</apex:column>
<apex:column headerValue="Nom">
<apex:inputField value="{!a.Name}"/>
</apex:column>
<apex:column headerValue="Prénom">
<apex:inputField value="{!a.Prenom__c}"/>
</apex:column>
<apex:column headerValue="Né le">
<apex:inputField value="{!a.Date_de_naissance__c}"/>
</apex:column>
<apex:column headerValue="Lieu de naissance">
<apex:inputField value="{!a.Lieu_de_naissance__c}"/>
</apex:column>
<apex:column headerValue="Situation">
<apex:inputField value="{!a.Situation__c }"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageblock>
</apex:form>
</apex:page>
//Controller
public class insererEnfants{
public List<Enfants__c> accts {get; set;}
public insererEnfants(ApexPages.StandardController controller){
accts = new List<Enfants__c>();
accts.add(new Enfants__c();
}
public void addrow(){
accts.add(new Enfants__c());
}
public PageReference deleteRow(){
if (accts.size()>1)
{
accts.remove(accts.size()-1);
}
return null;
}
public PageReference save()
{
insert accts;
Assure__c theParent = new Assure__c(id=accts[0].Parent__c);
PageReference acctPage = new ApexPages.StandardController(theParent).view();
acctPage.setRedirect(true);
return acctPage;
}
}
感謝您的幫助,但我的問題是在基礎插入ID,我應該修改控制器以插入父代的ID。 – Netmaster
問題是,當您創建子記錄時,您沒有定義父項,也沒有將其設置在其他任何地方。試試這個:accts.add(new Enfants__c(Parent__c = assureid)); – Hraefn
我得到這個錯誤'錯誤:編譯錯誤:變量不存在:確保在第9行第44列'這是我的問題,我沒有找到一個解決方案,直到我建立這個http://boards.developerforce .com/t5/Visualforce-Development/Passing-parent-id-to-child-record-in-VisualForce-page/td-p/111007並且我無法對此問題進行相同 – Netmaster