您好,我创建了一个视觉力页面,以标准的主控制器作为控制器并对其进行扩展。我想这样做,所以我仍然可以使用 apex:detail 控件,而不是重新发明轮子来处理标准的潜在客户信息、相关列表等。
我添加了一个 apex:commandbutton 并使其调用保存。当我点击这个按钮时,我可以清楚地看到我的函数正在被调用。但是,不会捕获通过内联编辑对潜在客户信息所做的所有更改。
例如,如果我使用内联编辑编辑 LastName 并单击 apex:command 按钮,则不会保存新的 LastName 值。这几乎就像 apex:commandbutton 调用的保存函数不知道数据更改一样。
以下是我的视觉力量页面的代码。
<apex:page standardController="Lead" extensions="LeadTestExtensionController">
<apex:form >
<apex:commandButton action="{!save}" value="Save" id="btnSave"/>
<apex:detail subject="{!Lead.Id}" relatedList="true" showchatter="true" inlineEdit="true" />
</apex:form>
</apex:page>
以下是共享类 LeadTestExtensionController { private Apexpages.StandardController 控制器;私有 PageReference 页面;私有字符串 id;私人决赛 Lead myLead; 公共字符串位置 {get; 放;}
public LeadTestExtensionController(ApexPages.StandardController stdController) {
this.controller = stdController;
this.myLead = (Lead)stdController.getrecord();
this.page = ApexPages.currentPage();
this.id = page.getParameters().get('id');
List<Lead> myLeads = [select Opportunity_Stage__c from lead where id = :id];
if(myLeads.size() > 0)
{
positions = myLeads[0].Opportunity_Stage__c;
}
}
public PageReference save() {
this.controller.save();
PageReference newPage = New PageReference('/apex/RCS');
newPage.getParameters().put('id',ApexPages.currentPage().getParameters().get('id'));
newPage.setRedirect(true);
return newPage;
}
}
一旦我点击 apex:command 按钮,页面就会被重定向到 apex/RCS,所以我知道它被调用了。但是,如果我返回同一条线索,则姓氏不会改变。我的印象是以下行会调用标准控制器的保存功能,该功能应该负责更新姓氏。
this.controller.save();
我做错了什么,我该如何做到这一点。上面的代码是我实际代码的高度简化版本。我在实际代码中尝试做的是检查某个字段的值,如果它符合某些标准,我希望它做一些事情。但是,我似乎看不到输入的新值。
谢谢你。