gpt4 book ai didi

salesforce - VisualForce 的 inputField 数据绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-04 22:52:47 29 4
gpt4 key购买 nike

我在 Visualforce 页面上得到了奇怪的结果(是的,Salesforce.com 很恶心,我知道)。我的问题是我正在尝试使用 inputField 在自定义 sObject 上绑定(bind)数据,但在我的自定义 Controller 中,它无法识别用户输入数据。

以下是该页面的代码片段:

<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>

这是 Controller 的代码:
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 属性不为空。每当我在输入值后点击“保存费用”按钮时,它都会重新加载页面并给我消息“错误:缺少必填字段:[Fee__c]”(注意,这里的 Fee__c 是一个货币字段——不是那个期望这是一个 sObject,是吗?)

saveFee() 方法中的调试语句显示workingFee 的重要字段为空,而我希望它们已被分配用户输入的值。

最佳答案

我遇到了一大堆问题,将控件绑定(bind)到使用简单 { get; 公开的属性。放; } 表示法...您的其余代码将看到属性,但由于某些奇怪的原因,您的 View 不会(总是)绑定(bind)...

尝试编写显式的 get/set 方法,例如

private workingFee;
public Fee__c getWorkingFee() {
return workingFee;
}

public void setWorkingFee(Fee__c value) {
workingFee = value;
}

没有合乎逻辑的理由为什么这应该与
public Fee__c workingFee { get; set; }

但根据我的经验,它有时会...

你怎么说它恶心? ;)

关于salesforce - VisualForce 的 inputField 数据绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942372/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com