Подскажите пожаулйста, такой вопрос, никак не получается решить)
Дано: vfp страница + контроллер. Нужно на страницу вывести таблицу с данными,
для этого в контроллере создаю класс с тремя String полями, заполняю его, и использую на странице <apex:repeat> (Передаю в таблицу заполненный объект, как приведено в доках (https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_repeat.htm#!)
на выходе - тишина(
хотя дебаг показывает что объект не пустой
Как быть?
(код страницы и контроллера)
<apex:page controller="TestPController">
<table>
<tr><td>CabinNumber</td><td>CabinType</td><td>PassengerName</td></tr>
<apex:repeat var="variable" value="{!passengers}">
<tr>
<td>{!variable.cabinNumber}</td>
<td>{!variable.cabinType}</td>
<td>{!variable.passengerName}</td>
</tr>
</apex:repeat>
</table>
</apex:page>
public class TestPController {
public List<Passenger> passengers {get;set;}
public class Passenger {
public String passengerName {get;set;}
public String cabinNumber {get;set;}
public String cabinType {get;set;}
}public TestPController() {
List<Passenger> passengers = new List<Passenger>();Passenger pass = new Passenger();
for (Integer i = 0; i < 3; i++) {
pass.passengerName = 'Name' + i;
pass.cabinNumber = 'cabinNumber' + i;
pass.cabinType = 'cabinType' + i;
passengers.add(pass);
}
System.debug(passengers);
}
}
Подскажите пожаулйста, такой вопрос, никак не получается решить) Дано: vfp страница + контроллер. Нужно на страницу вывести таблицу с данными, для этого в контроллере создаю класс с тремя String полями, заполняю его, и использую на странице <apex:repeat> (Передаю в таблицу заполненный объект, как приведено в доках (https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_repeat.htm#!) на выходе - тишина( [img]https://nnstar.ru/screenshot.jpg[/img] хотя дебаг показывает что объект не пустой Как быть? (код страницы и контроллера) [code]<apex:page controller="TestPController"> <table> <tr><td>CabinNumber</td><td>CabinType</td><td>PassengerName</td></tr> <apex:repeat var="variable" value="{!passengers}"> <tr> <td>{!variable.cabinNumber}</td> <td>{!variable.cabinType}</td> <td>{!variable.passengerName}</td> </tr> </apex:repeat> </table> </apex:page>[/code] [code]public class TestPController { public List<Passenger> passengers {get;set;} public class Passenger { public String passengerName {get;set;} public String cabinNumber {get;set;} public String cabinType {get;set;} } public TestPController() { List<Passenger> passengers = new List<Passenger>(); Passenger pass = new Passenger(); for (Integer i = 0; i < 3; i++) { pass.passengerName = 'Name' + i; pass.cabinNumber = 'cabinNumber' + i; pass.cabinType = 'cabinType' + i; passengers.add(pass); } System.debug(passengers); } }[/code]
Для начала перемести строку
Passenger pass = new Passenger();
внутрь for цикл.
А то получается что ты добавляешь в массив один и тот же объект в котором меняешь поля. Даже не представляю что в итоге у тебя получается в массиве passengers.
Проверь что получится. Если не заработает, будем думать дальше.
Для начала перемести строку Passenger pass = new Passenger(); внутрь for цикл. А то получается что ты добавляешь в массив один и тот же объект в котором меняешь поля. Даже не представляю что в итоге у тебя получается в массиве passengers. Проверь что получится. Если не заработает, будем думать дальше.
Большое спасибо быстро помогли объяснили всё работает
в контроллере изменить
List<Passenger> passengers = new List<Passenger>();
на
passengers = new List<Passenger>();
(ошибка не объявлять новую пер, а работать со свойством объекта, чтобы его было видно из vfp),
и Passenger pass = new Passenger(); поместить внутрь цикла чтобы корректно заполнить объект
Большое спасибо быстро помогли объяснили всё работает в контроллере изменить List<Passenger> passengers = new List<Passenger>(); на passengers = new List<Passenger>(); (ошибка не объявлять новую пер, а работать со свойством объекта, чтобы его было видно из vfp), и Passenger pass = new Passenger(); поместить внутрь цикла чтобы корректно заполнить объект
List<Passenger> passengers = new List<Passenger>();
А блин, точняк. Чет я это упустил из виду
Отлично что заработало!
List<Passenger> passengers = new List<Passenger>(); А блин, точняк. Чет я это упустил из виду :D Отлично что заработало!