【Salesforce】 does not support fields on a Salesforce object.
Visualforceで<apex:input> を使用した際に、コンパイルエラーが発生しました。
<apex:input> does not support fields on a Salesforce object.
<apex:input> にはSObjectのフィールドを使用できないということですね。
エラーの後ろには、<apex:inputField>を使ってねと記述してありました。
しかし、<apex:inputField>を使いたくないときもありますよね。
<apex:input>にtypeを指定したい時なんかですね。
そこで、少しだけ工夫をしました。
Visualforce側のコードです。
<apex:input type="number" value="{!SelectField}" />
こちらはコントローラのApexコードです。
// get method
public Decimal getSelectField(){
Decimal val = null;
if(String.isNotEmpty(this.obj.SelectField__c)){
val = Decimal.valueOf(this.obj.SelectField__c);
}
return val;
}
// set method
public void setSelectField(Decimal param){
String val = '';
if(param != 0){
val = String.valueOf(param);
}
this.obj.SelectField__c = val;
}
選択リストをtype=”number”で使用しています。
get・setメソッドを作ってやればいいわけですね。
type=”number”の形式だと空白の場合に0が入ってくるようなので、そのあたりの処理は考える必要がありそうです。
この例では0は未入力扱いとしています。
No comments.