Я новичок в SalesForce и использую HTML для страниц VisualForce, так как он более гибкий для разработки страниц, чем Apex.
Теперь я застрял при вводе данных объекта SalesForce в HTML SelectBox с идентификатором «Lop».
Это мой код VisualForce, здесь я использую HTML и CSS для дизайна:
<apex:page docType = "html-5.0" controller = "ThemMoiController">
<!-- CSS -->
<style>
table{
border:1px solid black;
}
td{
text-align: middle
}
#NgaySinh, #ThemMoi{
box-sizing: border-box;
min-width: 10px;
max-width: 100%;
width: 100%;
}
</style>
<!-- HTML -->
<table>
<tr>
<td>
<u>Quay lại</u>
</td>
</tr>
<tr/>
<tr>
<td/>
<td>Họ</td>
<td>
<input id = "Ho" type = "text" value = "{!hoVal}"/>
</td>
</tr>
<tr>
<td/>
<td>Tên</td>
<td>
<input id = "Ten" type = "text" value = "{!tenVal}"/>
</td>
</tr>
<tr>
<td/>
<td>Giới tính</td>
<td>
<input id = "GioiTinh" type = "checkbox" value = "{!gioitinhVal}"/>
</td>
</tr>
<tr>
<td/>
<td>Ngày sinh</td>
<td>
<input id = "NgaySinh" type = "date" value = "{!ngaysinhVal}"/>
</td>
</tr>
<tr>
<td/>
<td>Điểm 1</td>
<td>
<input id = "Diem1" type = "text" value = "{!diem1Val}"/>
</td>
</tr>
<tr>
<td/>
<td>Điểm 2</td>
<td>
<input id = "Diem2" type = "text" value = "{!diem2Val}"/>
</td>
</tr>
<tr>
<td/>
<td>Điểm 3</td>
<td>
<input id = "Diem3" type = "text" value = "{!diem3Val}"/>
</td>
</tr>
<tr>
<td/>
<td>Lớp</td>
<td>
<select id = "Lop"/>
</td>
</tr>
<tr/><tr/>
<tr>
<td/><td/>
<td>
<button id = "ThemMoi" type = "button">Thêm mới</button>
</td>
</tr>
</table>
</apex:page>
и это мой код контроллера Apex:
public class ThemMoiController {
public string hoVal { get; set; }
public string tenVal { get; set; }
public boolean gioitinhVal { get; set; }
public date ngaysinhVal { get; set; }
public double diem1Val { get; set; }
public double diem2Val { get; set; }
public double diem3Val { get; set; }
public void doInsert(){
HOCSINH__c hs = new HOCSINH__c();
hs.HO__c = hoVal;
}
}
Очень признателен за вашу помощь.
-> создать новую переменную объекта с помощью геттера-сеттера и инициализировать эту переменную в конструкторе.
-> затем используйте эту переменную объекта в vf для ввода значения поля от пользователя.
-> обновить метод doInsert для создания новой записи.
Контроллер вершины:
public class ThemMoiController {
public string hoVal { get; set; }
public string tenVal { get; set; }
public boolean gioitinhVal { get; set; }
public date ngaysinhVal { get; set; }
public double diem1Val { get; set; }
public double diem2Val { get; set; }
public double diem3Val { get; set; }
public HOCSINH__c hs { get; set; }
public ThemMoiController(){
hs = new HOCSINH__c();
}
public void doInsert(){
insert hs;
system.debug('---->'+hs);
}
}
Страница ВФ:
<apex:page docType = "html-5.0" controller = "ThemMoiController">
<!-- CSS -->
<style>
table{
border:1px solid black;
}
td{
text-align: middle
}
#NgaySinh, #ThemMoi{
box-sizing: border-box;
min-width: 10px;
max-width: 100%;
width: 100%;
}
</style>
<apex:form>
<!-- HTML -->
<table>
<tr>
<td>
<u>Quay lại</u>
</td>
</tr>
<tr>
<td>name</td>
<td>
<apex:inputField value = "{!hs.name}"/>
</td>
</tr>
<tr>
<td>Họ</td>
<td>
<apex:inputField id = "Ho" value = "{!hs.HO__c}"/>
</td>
</tr>
<tr>
<td>
<apex:commandButton action = "{!doInsert}" value = "Thêm mới" />
</td>
</tr>
</table>
</apex:form>
</apex:page>
-> когда мы нажимаем кнопку «Thêm mới», в объекте HOCSINH__c создается новая запись.
это поле для комментариев не допускает символов более 400, поэтому я опубликовал новый ответ.
вы можете создать переменную, которая будет списком объектов lop.
затем в конструкторе извлеките все записи объекта lop, которые вы хотите отобразить в раскрывающемся списке выбора, используя запрос soql, и назначьте результат запроса soql вышеупомянутой переменной, которая является списком объекта lop.
затем создайте метод получения, как указано ниже, который вернет список класса selectOption. поместите выпадающие значения в список переменной selectOption из списка переменной lop.
public List<SelectOption> getItems() {
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('US','US'));
options.add(new SelectOption('CANADA','Canada'));
options.add(new SelectOption('MEXICO','Mexico'));
return options;
}
используйте приведенный ниже код для реализации функции выбора на странице VF.
<apex:form>
<apex:selectList value = "{!variableToStoreSelectedValue}" multiselect = "true">
<apex:selectOptions value = "{!items}"/>
</apex:selectList><p/>
</apex:form>
перейдите по ссылке на документ для более подробной информации: https://developer.salesforce.com/docs/atlas.en-us.234.0.pages.meta/pages/pages_compref_selectList.htm
Спасибо, но мне нужно отобразить объект LOP в моем поле выбора. Потому что, как вы можете видеть, перед кнопкой Themmoi есть тег выбора. Это поле выбора, и я хочу, чтобы оно отображало значение из объекта LOP.