Visualforce 페이지에서 계정 개체의 관련 목록에서 기회 레코드를 동적으로 저장하려고합니다. 대상 :Visualforce 페이지에서 부모 개체의 관련 목록에서 자식 개체 레코드를 저장하는 방법
- 페이지 블록 테이블을 사용한 VF 페이지를 만들었습니다.
- 그리고 행 추가를 클릭하면 테이블에 새 행이 만들어 지지만 기회를 저장할 때 AccountName 필드가 테이블 (관련 목록)에 공백으로 표시되고 해당 기회 레코드가 특정 계정에 저장되지 않습니다.
내가 시스템 디버그를했을 때 계정 및 opplist가 saveopp()에 아무것도 표시하지 않기 때문에 실제 문제가 발생하지 않습니다. 나는 Accountid가 기회의 조회 필드로 가지 않을 것이라고 생각한다.
사람들이 나를 도와 주면 정말 고마워. 문제. 당신의 친절한 도움 :) 주셔서 감사합니다
**VF Page:-**
<apex:page standardController="Account" extensions="taskDemo">
<apex:form >
<apex:pageBlock title="" id="pb1" >
<apex:pageBlockSection title="Assign" columns="2">
<apex:inputField value="{!Account.Name}"/>
<apex:inputField value="{!Account.AccountNumber}"/>
<apex:inputField value="{!Account.Phone}"/>
<apex:inputField value="{!Account.Website}"/>
<apex:commandButton value="updateRecord" action="{!save}"/>
</apex:pageBlockSection>
<apex:pageBlockTable value="{!oppList}" var="op">
<apex:column headerValue="OpportunityName">
<apex:inputField value="{!op.Name}">
</apex:inputField>
</apex:column>
<apex:column headerValue="AccountName">
<apex:inputField value="{!op.Account.Name}"></apex:inputField>
</apex:column>
<apex:column headerValue="Amount">
<apex:inputField value="{!op.Amount}">
</apex:inputField>
</apex:column>
<apex:column headerValue="StageName">
<apex:inputField value="{!op.StageName}">
</apex:inputField>
</apex:column>
</apex:pageBlockTable>
<apex:commandButton value="saveopp" action="{!saveopp}"/>
<apex:commandButton value="AddRow" action="{!addRow}" rerender="pb1"/>
</apex:pageBlock>
</apex:form>
</apex:page>
**Controller:-**
public class taskDemo {
public ApexPages.StandardController controller;
public List<Opportunity> oppList{get; set;}
public Account a{get; set;}
public String accId{get;set;}
public taskDemo(ApexPages.StandardController controller) {
a = new Account();
accId = controller.getId();
System.debug('accid is::'+accId);
oppList = [Select id,Name,Account.Name,Amount,StageName,CloseDate from
Opportunity where AccountId =: accId];
}
public void addRow(){
oppList.add(new Opportunity());
Opportunity ts=new Opportunity();
ts.AccountId = accId;
System.debug('addrow::'+ ts.AccountId);
}
public PageReference saveopp(){
if(a.Name != null){
insert a;
system.debug('a record is='+a);
List<Opportunity> con = new List<Opportunity>();
for(Opportunity os : oppList)
{
os.AccountId = accId;
con.add(os);
system.debug('os record is='+os);
}
if(con != null){
upsert oppList;
system.debug('opp record is='+oppList);
}
}
return null;
}}
는 @Shyam 나이 르 이제 코드가 난 정말 당신이 want..but 설명 할 수있는 fine..like 노력하고, 정말 고마워요 나 u hv 만든 변경 사항 ..? – Swarnika
고마워요 @Pang 당신이 뭔가 편집했습니다. 설명해 주시겠습니까? – Swarnika
안녕하세요 @ 스와 니카, 내가 변경 한 내용이 아래에 있습니다. –