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