我目前正在使用带有自定义扩展程序的顶点表单在salesforce.com上开发一个表单。
表单本身旨在预订具有最大插槽数的游览。提交表单时,我需要检查以确保在表单中选择的日期和时间仍然有可用的插槽(因为在加载表单和提交之间没有预订)。
调用PageReference save()时,我无法让自定义控制器接收提交的表单数据。
假设我有......
<apex:form>
<apex:pageBlock>
<apex:inputField value="{!customObject__c.Date__c}"/>
<apex:inputField value="{!customObject__c".Time__c}"/>
<apex:commandButton value="{!save}"/>
</apex:pageBlock>
</apex:form>
我的客户扩展程序框架
public class myExtension {
public myExtension(ApexPages.StandardController controller) {
}
public PageReference save(){
return null;
}
}
如何通过save()访问inputField值,以便对现有数据库对象运行查询?
任何有关如何实现这一目标的例子都会很棒。
答案 0 :(得分:2)
您的视力标记不正确。您需要使用方法设置action属性,value属性将是保存文本:
<apex:form>
<apex:pageBlock>
<apex:inputField value="{!customObject__c.Date__c}"/>
<apex:inputField value="{!customObject__c".Time__c}"/>
<apex:commandButton value="Save" action="{!save}"/>
</apex:pageBlock>
</apex:form>
但假设上面只是一个拼写错误,你需要引用标准控制器传入的对象:
public class myExtension {
private CustomObject__c customObject;
public myExtension(ApexPages.StandardController controller) {
customObject = (CustomObject__c) controller.getRecord();
}
public PageReference save(){
//You can now access the customObject and it will contain the
//data input by the user
customObject.Name = ''; //Access properties on the object
update customObject;
return null;
}
}