Hi All,
It seems to very simple by name but not as much simple as you are thinking now.As we all know list itself has a method so called size() to check its size,however we can write list.size() in controller, which will return no. of elements present in the list otherwise return 0 if no elements present .But we can not write list.size method in visual-force page,then how will we check ????
For that I have done a workaround, one visual-force page is there having one field Account Type. When Account Type will be selected with some value ,then list of Accounts records will be displayed whose Account Type is matched with the selected value otherwise a message saying No Accounts Present in this Type.
Here is page:-
<apex:page controller="passingParamActionFuncController">
<apex:form >
<apex:pageBlock title="Account Information" id="pb">
<apex:pageBlockSection >
<apex:inputField value="{!account.Type}" Onchange="displayAccount();"/>
<apex:actionFunction name="displayAccount" action="{!displayAccount}" reRender="panel,mess"/>
<apex:outputPanel id="panel">
<apex:pageMessages id="mess"></apex:pageMessages>
<apex:pageBlockTable value="{!listOfAccounts}" var="account" rendered="{! IF(ISBLANK(listOfAccounts), false, true) }">
<apex:column value="{!account.Name}"/>
<apex:column value="{!account.Type}"/>
</apex:pageBlockTable>
</apex:outputPanel>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
And Controller
public with sharing class passingParamActionFuncController {
public Account account { get; set; }
public list<Account> listOfAccounts{get;set;}
public passingParamActionFuncController(){
account = new Account();
}
public PageReference displayAccount() {
System.debug('Printing account-->'+account.Type);
listOfAccounts = [SELECT id,Name,Type
FROM Account
WHERE Type =:account.Type];
if(listOfAccounts.size() == 0){
Apexpages.addMessage(new ApexPages.message(ApexPages.Severity.Info,'No Accounts Present in this Type'));
}
return null;
}
}
It seems to very simple by name but not as much simple as you are thinking now.As we all know list itself has a method so called size() to check its size,however we can write list.size() in controller, which will return no. of elements present in the list otherwise return 0 if no elements present .But we can not write list.size method in visual-force page,then how will we check ????
For that I have done a workaround, one visual-force page is there having one field Account Type. When Account Type will be selected with some value ,then list of Accounts records will be displayed whose Account Type is matched with the selected value otherwise a message saying No Accounts Present in this Type.
Here is page:-
<apex:page controller="passingParamActionFuncController">
<apex:form >
<apex:pageBlock title="Account Information" id="pb">
<apex:pageBlockSection >
<apex:inputField value="{!account.Type}" Onchange="displayAccount();"/>
<apex:actionFunction name="displayAccount" action="{!displayAccount}" reRender="panel,mess"/>
<apex:outputPanel id="panel">
<apex:pageMessages id="mess"></apex:pageMessages>
<apex:pageBlockTable value="{!listOfAccounts}" var="account" rendered="{! IF(ISBLANK(listOfAccounts), false, true) }">
<apex:column value="{!account.Name}"/>
<apex:column value="{!account.Type}"/>
</apex:pageBlockTable>
</apex:outputPanel>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
And Controller
public with sharing class passingParamActionFuncController {
public Account account { get; set; }
public list<Account> listOfAccounts{get;set;}
public passingParamActionFuncController(){
account = new Account();
}
public PageReference displayAccount() {
System.debug('Printing account-->'+account.Type);
listOfAccounts = [SELECT id,Name,Type
FROM Account
WHERE Type =:account.Type];
if(listOfAccounts.size() == 0){
Apexpages.addMessage(new ApexPages.message(ApexPages.Severity.Info,'No Accounts Present in this Type'));
}
return null;
}
}
1 comment:
Thanks asish,Good job,It is really helpful to us
Post a Comment