You need to sign in to do that
Don't have an account?
Pradeep d
pagination with wrapperclass using standardsetcontroller
Not refreshing the wrapper list here
public class TouchContact{ //Variable declaration public Contact con { get; set; } Public Integer noOfRecords{get; set;} Public Integer size{get;set;} public boolean selectedAllProperties { get; set; } public List<contactWrapperCls> lstConWrapper { // overall list get; set; } public List <contactWrapperCls> lstConWrapper1 { // page list set; get; } public List <contactWrapperCls> lstConWrapper2 { // Selected records list set; get; } public set < id > DummyIds; // Dummy object Ids public List < SelectOption > options { get; set; } public List < SelectOption > operatorOptions { get; set; } public static string selectedOperatorOption { get; set; } public static string SelectedOption { get; set; } public string enteredText { get; set; } public string selectedDataType { get; set; } public Map < string, string > checkDataTypeMap { get; set; } Public List<SelectOption> Slist { get; set; } public string selectedvalue { get; set; } public List<Contact> conlist{ get; set; } Public List < Contact > Createconlist { set; get; } public Map<id,Contact> Cmap{ get; set; } public Set<Id> Keys{ get; set; } public date dat{ get; set; } public date to{ get; set; } public ApexPages.StandardSetController stdCtrl{get;set;} public Integer counter = 0; //TO track the number of records parsed public Integer limitSize = 100; //Number of records to be displayed public Integer totalSize { set; get; } public transient Map < String, Schema.SObjectType > schemaMap = Schema.getGlobalDescribe(); public TouchContact(ApexPages.StandardController stdController){ con = new contact(); options = new List < SelectOption > (); checkDataTypeMap = new Map < String, string > (); operatorOptions = new List < SelectOption > (); //To fetch the Contact fields by Describe call Selectoption sv = new SelectOption('--Please Select--', '--Please Select--'); Options.add(sv); Map < String, Schema.SObjectField > ContactFieldsMap = SchemaMap.get('Contact').getDescribe().fields.getMap(); for (Schema.SObjectField sField: ContactFieldsMap.Values()) { schema.describefieldresult fieldName = sfield.getDescribe(); Schema.DisplayType fielddataType = sfield.getDescribe().getType(); string fieldType = string.valueOf(fielddataType); SelectOption sp = new SelectOption(fieldName.getName(), fieldName.getName()); checkDataTypeMap.put(fieldName.getName(), fieldType); options.add(sp); options.sort(); } //Add the filter conditons feteched from Custom settings to show in picklist SelectOption selOpt = new SelectOption('--Please Select--', '--Please Select--'); operatorOptions.add(selOpt); List < CustomCondition1__c > filetConditions = CustomCondition1__c.getall().values(); for (CustomCondition1__c Fcon: filetConditions) { SelectOption Fsp = new SelectOption(Fcon.Name, Fcon.Name); operatorOptions.add(Fsp); operatorOptions.sort(); } } public Integer countr = 0 ; public void Search(){ Integer pageSize ; size = 10; Integer totsize = 500; Integer pageNumber ; system.debug('From Date :******** '+con.datefield__c); system.debug('TO Date :******** '+con.To_date__c); system.debug('LastSent Date :******** '+con.Last_Sent_Date__c); system.debug('SelectedOption :******** '+SelectedOption); system.debug('Selected Operator :******** '+selectedOperatorOption); lstConWrapper = new List<contactWrapperCls>(); lstConWrapper1 = new List<contactWrapperCls>(); lstConWrapper2 = new List<contactWrapperCls>(); datetime fromDate = con.datefield__c; datetime toDate = con.To_date__c; Date lastDate30 = System.today().addDays(-30); Date lastDate60 = System.today().addDays(-60); Date lastDate90 = System.today().addDays(-90); Cmap = new map<Id,contact>(); conlist = new List<Contact>(); string soql = 'SELECT id,LastName,AssistantName,AssistantPhone,Birthdate,Department,Description,Email,Fax,'; soql += 'HomePhone,MailingAddress,MailingCity,MailingCountry,MailingPostalCode,MailingState,datefield__c,To_date__c,' ; soql += 'MailingStreet,MobilePhone,Name,firstname,OtherAddress,OtherCity,OtherCountry,OtherPhone,OtherPostalCode,'; soql += 'OtherState,OtherStreet,Account.Name,LastModifiedDate,Phone,Title,Mail_Sent_Date__c,' ; soql += '(SELECT Assistant_Name__c,Assistant_Phone__c,Birthdate__c,Contact__c,CreatedById,' + 'CreatedDate,Department__c,Description__c,Email__c,Fax__c,First_Name__c,Home_Phone__c,Id,IsDeleted,Mailing_City__c,' +'Mailing_Country__c,Mailing_State_Province__c,Mailing_Street__c,Mailing_Zip_Postal_Code__c,Mobile_Phone__c,Name,' +'Other_City__c,Other_Country__c,Other_Phone__c,Other_State_Province__c,Other_Street__c,Other_Zip_Postal_Code__c,' +'OwnerId,Phone__c,Title__c from Cons__r) From Contact '; string whereConditions = 'where '; string resultQuery = ''; if(con.datefield__c !=null && con.To_date__c !=null){ resultQuery = soql + whereConditions+ ' LastModifiedDate >= :fromDate AND LastModifiedDate <= :toDate' ; } if(Con.Last_Sent_Date__c !='--None--'){ resultQuery = getLastsentDate(Con.Last_Sent_Date__c ,resultQuery) ; } if(string.isNotBlank(SelectedOption) && string.isNotBlank(selectedOperatorOption) && string.isNotBlank(enteredText)){ resultQuery = getOperatorSelection(SelectedOption,selectedOperatorOption,resultQuery,enteredText) ; } //Hit the database conlist = database.query(resultQuery +' LIMIT 500' ); system.debug('conlist : ' + conlist); stdCtrl = new ApexPages.StandardSetController(conlist); stdCtrl.setPageSize(size); noOfRecords = stdCtrl.getResultSize(); pageNumber = stdCtrl.getPageNumber(); system.debug(pageNumber + 'page Number'); system.debug('noOfRecords '+ noOfRecords); for(contact con :(List<contact>)stdCtrl.getRecords()){ lstConWrapper.add(new contactWrapperCls(false,con)); } system.debug('lstConWrapper is 9((((((((((((:'+lstConWrapper.size()); } private string getLastsentDate(string lastSentDate,string dynamicSoql){ if(con.Last_Sent_Date__c =='30 days') dynamicSoql = dynamicSoql + ' and Mail_Sent_Date__c < :lastDate30'; if(con.Last_Sent_Date__c =='60 days') dynamicSoql = dynamicSoql + ' and Mail_Sent_Date__c < :lastDate60'; if(con.Last_Sent_Date__c =='90 days') dynamicSoql = dynamicSoql + ' and Mail_Sent_Date__c < :lastDate90'; if(con.Last_Sent_Date__c =='Contacted') dynamicSoql = dynamicSoql + ' and Mail_Sent_Date__c != null'; if(con.Last_Sent_Date__c =='Not Contacted') dynamicSoql = dynamicSoql + ' and Mail_Sent_Date__c = null'; return dynamicSoql; } private string getOperatorSelection(string SelectedOption,string selectedOperator,string dynamicSoql,string enteredText){ string selectedDataType = checkDataTypeMap.get(SelectedOption); if (selectedOperatorOption == 'Equal to'){ if(selectedDataType == 'BOOLEAN' || selectedDataType == 'Id') dynamicSoql = dynamicSoql + ' AND '+ SelectedOption + '= ' + enteredText; else dynamicSoql = dynamicSoql + ' AND '+ SelectedOption + '= ' + '\'' + enteredText + '\''; } if (selectedOperatorOption == 'Not equal to'){ if(selectedDataType == 'BOOLEAN' || selectedDataType == 'Id') dynamicSoql = dynamicSoql +' AND' + SelectedOption + '!= ' + enteredText; else dynamicSoql = dynamicSoql + ' AND '+ SelectedOption + '!= ' + '\'' + enteredText + '\''; } return dynamicSoql; } //=============pagination test==================// //==============================================// //================= Selected Records==============// public pageReference selectedRecords() { Map<Id, Contact>contactmap = New Map<Id, Contact>(); List<Contact>contactscupdate = New List<Contact>(); Set<id>lstSelectedCons = new set<Id>(); List<Contact>SelectedDc = new List < Contact > (); if(!lstConWrapper2.isEmpty()){ for(contactWrapperCls contactWrapperClsobj : lstConWrapper2){ if(contactWrapperClsobj.isSelected == true){ system.debug(contactWrapperClsobj); // lstSelectedCons.add(contactWrapperClsobj.Id); // SelectedDc.add(contactWrapperClsobj); } } } return null; } //=================Wrapper Class==================// public class contactWrapperCls{ public boolean isSelected {get;set;} public contact objContact {get;set;} public contactWrapperCls(boolean isSel,contact con){ this.isselected = isSel; this.objContact = con; } } public void selectAllChks(){ selectedAllProperties = true; } public pageReference refresh() { //stdCtrl = null; //getAccounts(); stdCtrl.setPageNumber(1); return null; } public Boolean hasNext { get { return stdCtrl.getHasNext(); } set; } public Boolean hasPrevious { get { return stdCtrl.getHasPrevious(); } set; } public Integer pageNumber { get { return stdCtrl.getPageNumber(); } set; } public void first() { stdCtrl.first(); } public void last() { stdCtrl.last(); } public void previous() { stdCtrl.previous(); } public void next() { stdCtrl.next(); //system.debug('hello%%%%%%%%%%%%%% :'+stdCtrl.); } } ==================vf======= <apex:page standardController="Contact" docType="Html-5.0" sidebar="false" extensions="TouchContact" > <style> .spacer15 { height: 10px; } </style> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <div class="container"> <ul class="nav nav-pills"> <li><a data-toggle="pill" href="#adminSetup">Admin Setup</a></li> <li><a data-toggle="pill" href="#sendEmail">Send Email</a></li> </ul> <div class="tab-content"> <div id="adminSetup" class="tab-pane fade in active"> <br/> <br/> <h4>Installation Steps </h4> <br/> <p> 1. Go to sites --> Click on New --> </p> </div> <div id="sendEmail" class="tab-pane fade"> <br/> <br/> <apex:form > <apex:actionFunction name="isSelectAllItem" action="{!selectAllChks}" rerender="pb"> <apex:param name="isSelectedALL" value="" assignTo="{!selectedAllProperties}"/> </apex:actionFunction> <div class="row"> <div class="col-sm-2" > <label for="FrmDate">Form Date:</label> </div> <div class="col-sm-4" > <apex:inputField value="{!Con.datefield__c}" styleClass="form-control" style="width:50%;" /> </div> <div class="col-sm-2" > <label for="ToDate">To Date:</label> </div> <div class="col-sm-4"> <apex:inputField value="{!Con.To_date__c}" styleClass="form-control" style="width:50%;" /> </div> </div> <div class="spacer15"> </div> <div class="row"> <div class="col-sm-2" > <label for="LsentDate">Last Sent Date:</label> </div> <div class="col-sm-4" > <apex:inputField value="{!Con.Last_Sent_Date__c}" styleClass="form-control" style="width:50%;" /> </div> <div class="col-sm-2" > <label for="LsentDate"> Enable Direct Send:</label> </div> <div class="col-sm-4" > <apex:inputCheckbox value="{!Con.Direct_send__c}" styleClass="form-control" style="width:50%;" /> </div> </div> <div class="spacer15"> </div> <div class="row"> <div class="col-sm-2"> <label for="sField">Select Field:</label> </div> <div class="col-sm-4"> <apex:selectList value="{!SelectedOption}" size="1" styleClass="form-control" style="width:50%;" > <apex:selectOptions value="{!Options}" /> </apex:selectList> </div> <div class="col-sm-2" > <apex:selectList value="{!selectedOperatorOption}" size="1" styleClass="form-control" > <apex:selectOptions value="{!operatorOptions}" > </apex:selectOptions> </apex:selectList> </div> <div class="col-sm-2" > <apex:inputText value="{!enteredText}" styleClass="form-control" /> </div> </div> <div class="spacer15"> </div> <div class="spacer15"> </div> <div style="float:None;align:center;margin-left:40%; "> <apex:commandButton value="Search" action="{!Search}" styleClass=" btn btn-primary" style="background:#236FBD; width:100px; font-size: 12px;" reRender="ContactList" status="pageStatus" > <apex:actionStatus id="pageStatus"> <apex:facet name="start"> <apex:outputPanel > <img src="/img/loading32.gif" width="25" height="25" /> <apex:outputLabel value="Loading..."/> </apex:outputPanel> </apex:facet> </apex:actionStatus> </apex:commandButton> </div> <div class="spacer15"> </div> <div class="container" > <apex:pageBlock id="ContactList" > <apex:outputPanel rendered="{! IF(lstConWrapper1!= null && lstConWrapper1.size !=0 , true, false)}"> <br/> <!-- count of selected items <apex:outputLabel value="Total Number of Records :{!totalSize } " /> --> </apex:outputPanel> <br/> <!-- <apex:outputPanel id="ContactList" rendered="{!conlist!= null && conlist.size > 0}" > <apex:commandButton value="<<" disabled="{!DisablePreviousAccount}" action="{!previousFirstAccount}" reRender="ContactList,ps" styleclass="bluerund"> </apex:commandButton> <apex:commandButton value="<" disabled="{!DisablePreviousAccount}" action="{!previousAccount}" reRender="ContactList,ps" styleclass="bluerund"> </apex:commandButton> <apex:commandButton value=">" disabled="{!DisableNextAccount}" action="{!nextAccount}" reRender="ContactList,ps" styleclass="bluerund"> </apex:commandButton> <apex:commandButton value=">>" disabled="{!DisableNextAccount}" action="{!nextLastAccount}" reRender="ContactList,ps" styleclass="bluerund"> </apex:commandButton> </apex:outputPanel> --> <apex:pageBlockTable value="{!lstConWrapper}" var="objCon" rendered="{! IF(lstConWrapper!= null && lstConWrapper.size !=0 , true, false)}"> <apex:column > <apex:facet name="header" > <apex:inputCheckbox value="{!selectedAllProperties}" styleClass="checkbox" onclick="selectAllCheckboxes(this)" id="Headercheckbox" /> </apex:facet> <apex:inputCheckbox value="{!objCon.isSelected}" styleClass="checkbox" onclick="doCheckboxChange(this,'{!objCon.objContact.Id}')" /> </apex:column> <apex:column value="{!objCon.objContact.lastname}"/> <apex:column value="{!objCon.objContact.firstname}"/> <apex:column value="{!objCon.objContact.Account.Name}"/> <apex:column value="{!objCon.objContact.email}"/> <apex:column value="{!objCon.objContact.LastModifiedDate}"/> </apex:pageBlockTable> <apex:pageBlockButtons > <apex:commandButton value="Send Mail" action="{!selectedRecords}" reRender="ContactList"/> </apex:pageBlockButtons> <apex:panelgrid columns="7" rendered="{!if(lstConWrapper !=null,true,false)}" > <apex:commandbutton action="{!first}" disabled="{!!hasPrevious}" rerender="ContactList" status="fetchStatus" title="First Page" value="|<"></apex:commandbutton> <apex:commandbutton action="{!previous}" disabled="{!!hasPrevious}" rerender="ContactList" status="fetchStatus" title="Previous Page" value="<"></apex:commandbutton> <apex:commandbutton action="{!next}" disabled="{!!hasNext}" rerender="ContactList" status="fetchStatus" title="Next Page" value=">"></apex:commandbutton> <apex:commandbutton action="{!last}" disabled="{!!hasNext}" rerender="ContactList" status="fetchStatus" title="Last Page" value=">|"> </apex:commandbutton> <apex:outputtext >{!(pageNumber * size)+1-size}-{!IF((pageNumber * size)>noOfRecords, noOfRecords,(pageNumber * size))} of {!noOfRecords}</apex:outputtext> <apex:commandbutton action="{!refresh}" rerender="pb" status="fetchStatus" title="Refresh Page" value="Refresh"></apex:commandbutton> <apex:outputpanel style="color: #4aa02c; font-weight: bold;"> <apex:actionstatus id="fetchStatus" starttext="Fetching..." stoptext=""> </apex:actionstatus> </apex:outputpanel> </apex:panelgrid> </apex:pageBlock> </div> </apex:form> </div> </div> </div> <script> function selectAllCheckboxes(obj){ $(".checkbox").each(function(index, item){ item.checked = obj.checked; }); isSelectAllItem(obj.checked); } function doCheckboxChange(cb,itemId) { if(cb.selected==true){ aSelectItem(itemId); } else{ aDeselectItem(itemId); } } </script> </apex:page>