inputField绑定问题与VisualForce
-
20-09-2019 - |
题
我有一个Visualforce页面(是的,Salesforce.com是甜的,我知道)奇怪的结果。我的问题是,我试图用inputField绑定一个自定义的sObject数据,但在我的自定义控制器,它不能识别用户输入的数据。
下面是从网页中的代码片断:
<apex:pageBlockSection title="Enter New Fee" rendered="{!isRenderedFees}" >
<apex:inputField value="{!workingFee.Fee_Type__c}" required="True"/>
<apex:inputField value="{!workingFee.Fee__c}" required="True"/>
<apex:pageBlockSectionItem >
<apex:CommandButton value="Save Fee" action="{!saveFee}" immediate="true" />
<apex:CommandButton value="Cancel" action="{!cancelFee}" immediate="true" />
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
和这里是来自控制器的代码:
public Fee__c workingFee {get; set;}
....
public PageReference saveFee(){
this.workingFee.Trade_Group__c = tradeGroup.id;
try{
System.debug('~~~~#~~#~~workingFee: '+workingFee.Fee_Type__c +'='+workingFee.Fee__c);
upsert workingFee;
}catch (System.Dmlexception e){
ApexPages.addMessages(e);
return null;
}
System.debug('~~~~#~~#~~workingFee: '+workingFee.Fee_Type__c +'='+workingFee.Fee__c);
//savedFees.add(workingFee.clone());
//re-render the page
this.isRenderedFees = False;
return null;
}
我已经取得了一定的workingFee属性不为null。每当我输入后点击“保存费”按钮,重新加载页面,并给我的消息“错误:必填字段缺失:[Fee__c]”(注意,Fee__c这里是一个货币域 - 它不是,它预计这是一个的sObject,是吗?)
在saveFee()方法调试声明显示,workingFee的重要领域是空的,我希望他们已经由用户指定的值的输入。
解决方案
我有问题的结合控制,以用简单的{暴露的性质的整个堆得到;组; }符号......你的代码的其余部分将看到的属性,但对于一些奇怪的原因,你的视图不会(总是)绑定...
试着写明确的get / set方法,如
private workingFee;
public Fee__c getWorkingFee() {
return workingFee;
}
public void setWorkingFee(Fee__c value) {
workingFee = value;
}
没有逻辑上的理由为什么这应该工作的任何不同的至
public Fee__c workingFee { get; set; }
但在我的经验,有时做...
你是怎么说的它是甜的? ;)
其他提示
立即=假/真咬了我好几次了。良好的抓伊恩。
不隶属于 StackOverflow