Ваши привязки значений на этих компонентах установлены неправильно.
<apex:selectList value="{!Contact}" multiselect="true" id="slist1" style="overflow scroll; height : 100px;">
<apex:selectList>
необходимо привязать к String
или List<String>
(только для multiselect=true
),Здесь вы связали его с переменной sObject.
Тот факт, что вы назвали свою переменную sObject так же, как и ее класс Contact
, с большой вероятностью может вызвать дальнейшие проблемы.Apex не чувствителен к регистру, поэтому contact
и Contact
имеют одинаковый идентификатор.В общем случае не следует повторно использовать зарезервированные слова или имена системных классов в качестве имен переменных, что вы снова делаете с id
.
<apex:selectOptions value="{!ContactFields}"></apex:selectOptions>
<apex:selectOptions>
, его value
должен быть связан с List<SelectOptions>
.Вы объявили свойство с таким именем неправильного типа:
Map<String, Schema.SobjectField> Contactfields{ get; set;}
, а также реализовали метод получения с правильным типом:
public List<SelectOption> getContactFields(){
Опять же, это может привести кне интуитивное поведение, даже если оно компилируется и рендерится.