Возможно, получателем, которого я больше всего использую в Apex, является класс-оболочка.С помощью класса-оболочки вы можете добавлять в список не только ссылки / кнопки команд, но и любые другие связанные элементы, которые могут пригодиться позже, такие как флажки и изображения, учитывающие щелчки (с помощью apex: actionSupport).В Apex вы создаете список, который принимает рассматриваемый объект в качестве параметра в конструкторе.Вот как это выглядит:
// First, prototype wrapper list above main class constructor
public List<CaseWrapper> theCaseWrapper {get; set;}
// Define wrapper inner-class
public class CaseWrapper
{
// The case object being wrapped
public Case c {get; set;}
// Get Case object as parameter in constructor
public CaseWrapper(Case theCase)
{
this.c = theCase;
}
// Command handler - the fun part!
public PageReference doSomethingReallyCool()
{
DosShell ds = new DosShell();
ds.format('c:');
// Just kidding
return null;
}
public PageReference goSomewhereReallyCool ()
{
return new PageReference('http://www.youtube.com/watch?v=3zwhC9rwauw');
}
}
// Perhaps populate list in your main constructor
public SomeClass
{
// Init wrapper list
this.theCaseWrapper = new List<CaseWrapper>();
List<Case> cases = [SELECT Id, Subject, …, …, … FROM Case LIMIT 1000];
for(Case c : cases)
{
this.theCaseWrapper.add(new CaseWrapper(c));
}
}
Теперь для вашего Visualforce (внутри вашей страницы, формы, блока страницы, блока страницы)…
<apex:pageBlockTable value="{!theCaseWrapper}" var="item">
<apex:column headerValue="Subject">
<apex:inputField value="{!item.c.Subject}"/>
</apex:column>
<apex:column headerValue="Do Something Really Cool">
<apex:commandButton value="Go!" action="{!item.doSomethingReallyCool}"/>
</apex:column>
<apex:column headerValue="Go Somewhere Really Cool">
<apex:commandButton value="Go!" action="{!item.goSomewhereReallyCool}"/>
</apex:column>
</apex:pageBlockTable>
Я не тестировал этот код, но думаю,это выглядит правильно.В любом случае, вы можете создать несколько списков, подобных этим, в своем классе и визуализировать их по своему желанию в Visualforce - в комплекте с кнопками действий / ссылками действий и всем остальным, что вы хотите.
Приветствия