Vf Code - Answers - Salesforce Trailblazer Community
Trailblazer Community
Ask Search:
Shruthi NarsiShruthi Narsi 

Vf Code

Can you Corrcet the below code I need to created a wrapper class for Product2__c

public class SelectClassController{
    
    //Our collection of the class/wrapper objects wrapAccount 
    public List<wrapProduct2__c> wrapProductList {get; set;}
    public List<Product2__c> selectedProduct{get;set;}
    
    public SelectClassController(){
        if(wrapProductList == null) {
            wrapProductList = new List<wrapProduct2__c>();
            for(Product2__c a: [select Id, Name from Product2__c limit 10]) {
                // As each Account is processed we create a new wrapAccount object and add it to the wrapAccountList
                wrapProductList.add(new wrapProduct2__c(a));
            }
        }
    }
    
    public void processSelected() {
        selectedProduct = new List<Product2__c>();
        
        for(wrapProduct wrapProductObj : wrapProductList) {
            if(wrapProductObj.selected == true) {
                selectedProduct.add(wrapProduct2__cObj.acc);
            }
        }
    }
    class wrapProduct2__c{
        public Product2__c acc {get;set;}
        public Boolean selected {get;set;}
        wrapProduct(Product2__c p) {
            this.acc = p;
        }
    }
}

Below is the VF Code

<apex:page controller="SelectClassController" sidebar="false">
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20%20%20%20%20%20%20function%20selectAllCheckboxes(obj%2CreceivedInputID)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20inputCheckBox%20%3D%20document.getElementsByTagName(%22input%22)%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20for(var%20i%3D0%3B%20i%3CinputCheckBox.length%3B%20i%2B%2B)%7B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(inputCheckBox%5Bi%5D.id.indexOf(receivedInputID)!%3D-1)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20inputCheckBox%5Bi%5D.checked%20%3D%20obj.checked%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
    <apex:form >
        <apex:pageBlock >
            
            <apex:pageBlockButtons >
                <apex:commandButton value="Show Selected Products" action="{!processSelected}" rerender="table2"/>
            </apex:pageBlockButtons>
             
            <apex:pageblockSection title="All Products" collapsible="false" columns="2">
             
                <apex:pageBlockTable value="{!wrapProductList}" var="accWrap" id="table" title="All Products">
                    <apex:column >
                        <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
                        <apex:inputCheckbox value="{!accWrap.selected}" id="inputId"/>
                    </apex:column>
                    <apex:column value="{!accWrap.acc.Name}" />
                     <apex:column value="{!accWrap.acc.ProductCode}" />
                     <apex:column value="{!accWrap.acc.Description}" />
                </apex:pageBlockTable>          
                       
                <apex:pageBlockTable value="{!selectedProduct}" var="c" id="table2" title="Selected Products">
                    <apex:column value="{!c.Name}" headerValue="Product Name"/>
                    <apex:column value="{!c.ProductCode}" />
                     <apex:column value="{!c.Description}" />
                </apex:pageBlockTable>
             
            </apex:pageblockSection>
        </apex:pageBlock>
    </apex:form>
    </apex:page>
Neeraj SethiNeeraj Sethi
Hello Shruthi,

Can you please tell us do you want to use standard Product2 Object or do you have custom object?

If that is a Standard object please use following code.

VF Code 
<apex:page controller="SelectClassController" sidebar="false">
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%20%20%20%20%20%20%20%20function%20selectAllCheckboxes(obj%2CreceivedInputID)%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20inputCheckBox%20%3D%20document.getElementsByTagName(%22input%22)%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20for(var%20i%3D0%3B%20i%3CinputCheckBox.length%3B%20i%2B%2B)%7B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(inputCheckBox%5Bi%5D.id.indexOf(receivedInputID)!%3D-1)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20inputCheckBox%5Bi%5D.checked%20%3D%20obj.checked%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
    <apex:form >
        <apex:pageBlock >
            
            <apex:pageBlockButtons >
                <apex:commandButton value="Show Selected Products" action="{!processSelected}" rerender="table2"/>
            </apex:pageBlockButtons>
            
            <apex:pageblockSection title="All Products" collapsible="false" columns="2">
                
                <apex:pageBlockTable value="{!wrapProductList}" var="accWrap" id="table" title="All Products">
                    <apex:column >
                        <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
                        <apex:inputCheckbox value="{!accWrap.selected}" id="inputId"/>
                    </apex:column>
                    <apex:column value="{!accWrap.product.Name}" />
                    <apex:column value="{!accWrap.product.ProductCode}" />
                    <apex:column value="{!accWrap.product.Description}" />
                </apex:pageBlockTable>          
                
                <apex:pageBlockTable value="{!selectedProduct}" var="c" id="table2" title="Selected Products">
                    <apex:column value="{!c.Name}" headerValue="Product Name"/>
                    <apex:column value="{!c.ProductCode}" />
                    <apex:column value="{!c.Description}" />
                </apex:pageBlockTable>
                
            </apex:pageblockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Apex Class
public class SelectClassController{
    
    //Our collection of the class/wrapper objects wrapAccount 
    public List<ProductWrapper> wrapProductList {get; set;}
    public List<Product2> selectedProduct{get;set;}
    
    public SelectClassController(){
        wrapProductList = new List<ProductWrapper>();
        for(Product2 a: [select Id, Name, ProductCode, Description from Product2 limit 10]) {
            // As each Account is processed we create a new wrapAccount object and add it to the wrapAccountList
            wrapProductList.add(new ProductWrapper(a));
        }
        
    }
    
    public void processSelected() {
        selectedProduct = new List<product2>();
        
        for(ProductWrapper wrapProductObj : wrapProductList) {
            if(wrapProductObj.selected == true) {
                selectedProduct.add(wrapProductObj.product);
            }
        }
    }
    public class ProductWrapper{
        public Product2 product {get;set;}
        public Boolean selected {get;set;}
        ProductWrapper(Product2 product) {
            this.product = product;
        }
    }
}


Thanks
Neeraj Sethi
Shruthi NarsiShruthi Narsi
No Custome object Product2__c in both the codes im trying to implement on force.com