function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Shruthi NarsiShruthi Narsi 

Error message display!

I want to display error messages based on certain validation below is the code

public class ProductSearchPopupController {
    
    public String query {get; set;}
    public List<PricebookEntry__c> products {get; set;}
    public List<wrapProduct> wrapProductList {get; set;}
    public List<PricebookEntry__c> selectedProduct{get;set;}
    public List<QuoteLineitem__c> quoteLineList{get;set;}
    public List<wrapProduct> selectedWrapperList{get;set;}
    public Boolean normalList{get;set;}
    public Boolean selectedList{get;set;}
    public Boolean block{get;set;}
    public Boolean block1{get;set;}
    public Boolean block2{get;set;}
    public String SalesPrice {get; set;}
    public integer Discount {get; set;}
    public String Quantity {get; set;}
    public String ServiceDate {get; set;}
    Id recordId;
    
    public ProductSearchPopupController(ApexPages.StandardController controller){
        recordId = controller.getId();
        system.debug('recordId '+recordId);
        wrapProductList = new List<wrapProduct>();
        selectedWrapperList = new List<wrapProduct>();
        normalList = true;
        selectedList = false;
        block = true;
        block1 = false;
        block2 = false;
    }
    
    public PageReference runQuery(){
        
        if(query == null || query == ''){
            if(query != 'recordid'){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Invalid Entry'));}
                    else{
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Please enter Product to search for'));
            
            return null;
            
        }
        }
                    
                    system.debug('query '+query);
 
            List<List<PricebookEntry__c>> searchResults=[FIND :query IN ALL FIELDS RETURNING PricebookEntry__c (id, Name, ProductCode__c, Product2Id__r.Product_Description__c,UnitPrice__c, UseStandardPrice__c)];
            if(searchResults[0]!=null){
                for(PricebookEntry__c a: searchResults[0]) {
                    // As each Account is processed we create a new wrapAccount object and add it to the wrapAccountList
                    wrapProductList.add(new wrapProduct(a));
                    block = true;
                    block1 = true;
                    block2 = false;
                }
            }
            return null;
        }
        
        
        public PageReference ProceedWithSelectedToNextPage(){
            selectedWrapperList = new List<wrapProduct>();
            normalList = false;
            selectedList = true;
            for(wrapProduct selectedWrapObj: wrapProductList){
                system.debug('selectedWrapObj.selected  ---------'+selectedWrapObj.selected);
                if(selectedWrapObj.selected == true)
                    selectedWrapperList.add(selectedWrapObj);
            }
            system.debug('selectedWrapperList size ---------'+selectedWrapperList.size());
            PageReference pageRef = new PageReference('/apex/AccountOpportunityTwoPage');
            pageRef.setRedirect(false);
            return pageRef;
        }
        public void processSelected() {
            selectedProduct = new List<PricebookEntry__c>();
            for(wrapProduct wrapProductObj : wrapProductList) {
                if(wrapProductObj.selected == true) {
                    selectedProduct.add(wrapProductObj.acc);
                    block = false;
                    block1 = false;
                    block2 = true;
                    
                }
            }
        }
        
        public void GoBack() {
            block = true;
            block1 = true;
            block2 = false;
        }
        
        public class wrapProduct{
            public PricebookEntry__c acc {get;set;}
            public Boolean selected {get;set;}
            public wrapProduct(PricebookEntry__c p) {
                this.acc = p;
                this.selected = false;
            }
            
        }
        
        public pagereference saveproduct(){
            List<QuoteLineitem__c> quoteLineList = new  List<QuoteLineitem__c>();
            if(!selectedProduct.isEmpty()){
                for(PricebookEntry__c sp:selectedProduct){
                    system.debug('sp '+sp);
                    QuoteLineitem__c qli = new QuoteLineitem__c();
                    qli.QuotesId__c = recordId;
                    qli.ListPrice__c = sp.UnitPrice__c;
                    qli.UnitPrice__c = sp.UnitPrice__c;
                    qli.Product2Id__c = sp.Product2Id__c;    
                    if(Discount!=0 || Discount!=null){
                        qli.Discount__c = Discount;
                    }
                    quoteLineList.add(qli);
                }
                
                if(quoteLineList.size()>0){
                    insert quoteLineList;
                    PageReference pageRef = new PageReference('https://proseraa.lightning.force.com/lightning/r/Quotes__c/'+recordId+'/view');
                    pageRef.setRedirect(true);
                    return pageRef;
                }
            }
            return null;
        }
        
    }

User-added image
Jessica RiffeJessica Riffe
In your visualforce page, you need to add:
 
<apex:pageMessages id="errorMessages" />

// Then for your button
<apex:commandButton value="Search" action="{!search}" reRender="errorMessages" ></apex:commandButton>