View
Custom Controller 만들고 사용하기
1. Custom Controller Apex Class 만들기
기본 sortOrder = LastName
sortOrder를 변경하면 결과 순서를 반영해 Contact를 검색하는 SOQL 쿼리에 사용됨
public class ContactsListWithController {
private String sortOrder = 'LastName';
public List<Contact> getContacts() {
List<Contact> results = Database.query(
'SELECT Id, FirstName, LastName, Title, Email ' +
'FROM Contact ' +
'ORDER BY ' + sortOrder + ' ASC ' +
'LIMIT 10'
);
return results;
}
public void sortByLastName() {
this.sortOrder = 'LastName';
}
public void sortByFirstName() {
this.sortOrder = 'FirstName';
}
}
2. Custom Controller 사용하는 Visualforce page 만들기
<apex:column>은 그 자체로 일반 텍스트 헤더가 있지만
<apex:facet>을 사용하면 열 헤더의 내용을 원하는 대로 설정 O,
올바른 action method 호출
헤더를 클릭하면 <apex:commandLink action>에 해당하는 메소드 실행됨
<apex:page controller="ContactsListWithController">
<apex:form >
<apex:pageBlock title="Contacts List" id="contacts_list">
<apex:pageBlockTable value="{! contacts }" var="ct" >
<apex:column value="{! ct.FirstName }">
<apex:facet name="header">
<apex:commandLink action="{! sortByFirstName }"
reRender="contacts_list">First Name
</apex:commandLink>
</apex:facet>
</apex:column>
<apex:column value="{! ct.LastName }">
<apex:facet name="header">
<apex:commandLink action="{! sortByLastName }"
reRender="contacts_list">Last Name
</apex:commandLink>
</apex:facet>
</apex:column>
<apex:column value="{! ct.Title }" />
<apex:column value="{! ct.Email }" />
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
결과 페이지
참조 : Trailhead - Create & Use Custom Controllers
'Salesforce UI' 카테고리의 다른 글
[Lightning Component] Controller vs Helper (0) | 2022.02.22 |
---|---|
Visualforce 기초 03 (0) | 2022.01.04 |
Visualforce 기초 02 (0) | 2022.01.03 |
Visualforce 기초 01 (0) | 2021.12.30 |
reply