Ben*_*Ben 4 salesforce visualforce apex-code
我在Visualforce页面上得到了奇怪的结果(是的,Salesforce.com很icky,我知道).我的问题是我尝试使用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>
Run Code Online (Sandbox Code Playgroud)
这是来自控制器的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
我已确保workingFee属性不为null.每当我输入值后点击"保存费"按钮,它就会重新加载页面并给我一条消息"错误:缺少必填字段:[Fee__c]"(注意,这里的费用是一个货币字段 - 不是它期望这是一个sObject,是吗?)
saveFee()方法中的debug语句显示workingFee的重要字段为null,当我希望它们被赋予用户输入的值时.
kiw*_*pom 10
我有一大堆问题将控件绑定到使用简单{get; 组; 表示法...其余代码将看到属性,但由于某些奇怪的原因,您的视图将不会(始终)绑定...
尝试编写显式的get/set方法,比如
private workingFee;
public Fee__c getWorkingFee() {
return workingFee;
}
public void setWorkingFee(Fee__c value) {
workingFee = value;
}
Run Code Online (Sandbox Code Playgroud)
没有合理的理由说明为什么这应该有所不同
public Fee__c workingFee { get; set; }
Run Code Online (Sandbox Code Playgroud)
但根据我的经验,它有时会......
你怎么说它是icky?;)
| 归档时间: |
|
| 查看次数: |
9023 次 |
| 最近记录: |