Loading

SOQL クエリの結果を Visualforce ページおよび Lightning コンポーネントに表示する

公開日: Jun 26, 2023
説明

SOQL クエリの結果を表示する Visualforce ページを作成する例:

  1. SOQL クエリからレコードを取得する Apex クラスを作成します
  2. この SOQL クエリから返された結果を表示する Visualforce ページを作成します
解決策

Apex クラス:

public with sharing class TestDisplayQueryList{
public List<Account> Records {get; set;}
public TestDisplayQueryList(){
Records =
[select Name, AccountNumber, CleanStatus from Account where CleanStatus='Pending'];
}
}

 

Visualforce ページ:

<apex:page controller="TestDisplayQueryList">
<apex:pageBlock title="My Content">
  <apex:pageBlockTable value="{!Records}" var="Record">
   <apex:column >
    <apex:facet name="header">Account Name</apex:facet>
    <apex:outputText value="{!Record.Name}"/>
   </apex:column>
   <apex:column >
    <apex:facet name="header">Account Number</apex:facet>
    <apex:outputText value="{!Record.AccountNumber}"/>
   </apex:column>
   <apex:column >
    <apex:facet name="header">Clean Status</apex:facet>
    <apex:outputText value="{!Record.CleanStatus}"/>
   </apex:column>
  </apex:pageBlockTable>
</apex:pageBlock>
</apex:page>



Lightning コンポーネントで SOQL クエリからのデータを表示するには、次の SOQL クエリ例を使用します。

Apex クラス accWithContController.apxc

public class accWithContController {
@AuraEnabled
public static list < Account > fetchAccount() {
  // query 10 records from account with their relevant contacts and return query.
List < Account > lstOfAcc = [select Name, AnnualRevenue, BillingState, (select LastName from contacts) from Account LIMIT 10];
  return lstOfAcc;
}
}

Lightning コンポーネント

<aura:component controller="accWithContController">
   <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
 <aura:attribute name="ListOfAccount" type="Account[]" description="store accounts with their child contacts"/>
   <ul>
      <aura:iteration items="{!v.ListOfAccount}" var="acc">
         <li type="dice">AccountName : {!acc.Name}</li>
         <ul>
            <aura:iteration items="{!acc.Contacts}" var="con" indexVar="index">
               <li>contact {!index + 1} Name : {!con.LastName}</li>
            </aura:iteration>
         </ul>
         <hr/>
      </aura:iteration>
   </ul>
</aura:component>

コントローラー

({
doInit: function(component, event, helper) {
  //call apex class method
  var action = component.get('c.fetchAccount');
  action.setCallback(this, function(response) {
   //store state of response
   var state = response.getState();
   if (state === "SUCCESS") {
    //set response value in ListOfAccount attribute on component.
    component.set('v.ListOfAccount', response.getReturnValue());
   }
  });
  $A.enqueueAction(action);
},
})
ナレッジ記事番号

000386576

 
読み込み中
Salesforce Help | Article