Friday 18 September 2015

Pagination using Field Sets (i.e. with customizable columns) - Part # 4

Refer to my previous post on Using Field Sets in Visual force pages


This post explains the pagination in salesforce using field sets which allows easy customization of column display including 
a) what to display
b) what order/sequence

Below markup illustrates this:

Visualforce Page

<apex:page standardController="Product2"  recordsetvar="products" extensions="PaginationTutorial_4">
<apex:pageMessages id="pgm"/>
<apex:form >                     
<apex:pageBlock >
    <apex:outputPanel layout="block" styleClass="pSearchShowMore" id="otpNav2">
        Total Records Found: <apex:outputText rendered="{!IF(Con.resultSize==10000,true,false)}">10000 +</apex:outputText><apex:outputText rendered="{!IF(Con.resultSize < 10000,true,false)}">{!Con.resultSize}</apex:outputText>
        <apex:image url="/img/search_prevarrow_disabled.gif" styleClass="prevArrow" rendered="{!NOT(Con.HasPrevious)}"/>
        <apex:image url="/img/search_prevarrow.gif" title="Previous Page" styleClass="prevArrow" rendered="{!Con.HasPrevious}"/>
        <apex:commandLink action="{!Previous}" title="Previous Page" value="Previous Page" rendered="{!Con.HasPrevious}"/>
        <apex:outputPanel styleClass="pShowLess noLink" style="color:grey" rendered="{!NOT(Con.HasPrevious)}">Previous Page</apex:outputPanel>         
        &nbsp;({!IF(Con.PageNumber == 1,1,((Con.PageNumber -1) * Con.PageSize)+1)}-{!IF(Con.resultSize < Con.PageSize,Con.resultSize,Con.PageNumber * Con.pageSize)})&nbsp;
        <apex:outputPanel styleClass="pShowLess noLink" style="color:grey" rendered="{!NOT(Con.HasNext)}">Next Page</apex:outputPanel>         
        <apex:commandLink title="Next Page" value="Next Page" rendered="{!Con.HasNext}" action="{!Next}"/>&nbsp;
        <apex:image url="/img/search_nextarrow.gif" title="Next Page" styleClass="nextArrow" rendered="{!Con.HasNext}"/>
        <apex:image url="/img/search_nextarrow_disabled.gif" rendered="{!NOT(Con.HasNext)}"/>
    </apex:outputPanel>
    <apex:pageBlockTable value="{!products}" var="v">
        <apex:repeat value="{!$ObjectType.Product2.FieldSets.fieldSetForPagination}" var="f">
              <apex:column value="{!v[f.FieldPath]}"/>
        </apex:repeat>      
    </apex:pageBlockTable>
    <apex:outputPanel layout="block" styleClass="pSearchShowMore" id="otpNav">
        Total Records Found: <apex:outputText rendered="{!IF(Con.resultSize==10000,true,false)}">10000 +</apex:outputText><apex:outputText rendered="{!IF(Con.resultSize < 10000,true,false)}">{!Con.resultSize}</apex:outputText>
        <apex:image url="/img/search_prevarrow_disabled.gif" styleClass="prevArrow" rendered="{!NOT(Con.HasPrevious)}"/>
        <apex:image url="/img/search_prevarrow.gif" title="Previous Page" styleClass="prevArrow" rendered="{!Con.HasPrevious}"/>
        <apex:commandLink action="{!Previous}" title="Previous Page" value="Previous Page" rendered="{!Con.HasPrevious}"/>
        <apex:outputPanel styleClass="pShowLess noLink" style="color:grey" rendered="{!NOT(Con.HasPrevious)}">Previous Page</apex:outputPanel>         
        &nbsp;({!IF(Con.PageNumber == 1,1,((Con.PageNumber -1) * Con.PageSize)+1)}-{!IF(Con.resultSize < Con.PageSize,Con.resultSize,Con.PageNumber * Con.pageSize)})&nbsp;
        <apex:outputPanel styleClass="pShowLess noLink" style="color:grey" rendered="{!NOT(Con.HasNext)}">Next Page</apex:outputPanel>         
            <apex:commandLink title="Next Page" value="Next Page" rendered="{!Con.HasNext}" action="{!Next}"/>&nbsp;
            <apex:image url="/img/search_nextarrow.gif" title="Next Page" styleClass="nextArrow" rendered="{!Con.HasNext}"/>
            <apex:image url="/img/search_nextarrow_disabled.gif" rendered="{!NOT(Con.HasNext)}"/>          
    </apex:outputPanel>
</apex:pageBlock>
</apex:form>
</apex:page>

Apex Class


public class PaginationTutorial_4
{    
    public ApexPages.StandardSetController con{get; set;}
    public PaginationTutorial_4(ApexPages.StandardSetController controller) 
    {
        con = controller;
        con.setPageSize(10);
    }
      
    //Boolean to check if there are more records after the present displaying records
    public Boolean hasNext
    {
        get
        {
            return con.getHasNext();
        }
        set;
    } 
    //Boolean to check if there are more records before the present displaying records
    public Boolean hasPrevious
    {
        get
        {
            return con.getHasPrevious();
        }
        set;
    } 
    //Page number of the current displaying records
    public Integer pageNumber
    {
        get
        {
            return con.getPageNumber();
        }
        set;
    }
    //Returns the previous page of records
    public void previous()
    {
        con.previous();
    } 
    //Returns the next page of records
    public void next()
    {
        con.next();
    }
}


Field Set


Preview



Advantages

  • Table columns can be customized anytime by adjusting the field set and ends as just a configuration level change
  • We can make any display level changes by directly editing visual force page
  • Both columns and its sequence of display can be controlled
  • Use the dbrequired flag on field set if the pagination is for inline editing

Disadvantages

  • Pagination is limited only to the direct object fields. That is, relationship fields cannot be included. For example, we cannot display Last Modified By user email in this table. We can include this field in the pagination, but this visual force page will fail with exception: System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: LastModifiedBy.Email.
          Hence this pagination is limited only to direct fields for the object in context.
          Further blog posts will cover this exception. Stay tuned.


20 comments:

  1. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.

    ccna training in chennai velachery

    ReplyDelete
  2. Wow! I Agree.. It was the best article , actually you have posted something new compared to others, because I read many articles related to this topic but I only get impressed with your post only, keep posting. Thanks..




    Cloud Computing training in Chennai

    Salesforce training in Chennai

    VMWare training in Chennai

    AWS training in Chennai

    ReplyDelete
  3. Great post! I am see the great contents and step by step read really nice information.I am gather this concepts and more information. It's helpful for me my friend. Also great blog here with all of the valuable information you have.

    seo company in chennai

    ReplyDelete
  4. Хотите изменить свою прическу и выглядеть стильно? Рекомендую обратить внимание на стрижку Клава Кока! Это модная и современная стрижка, которая пользуется огромной популярностью. Она подходит для разных типов волос и создает яркий образ. Здесь вы можете увидеть 33 фото с примерами стрижки Клава Кока и найти вдохновение для своего нового образа. Для просмотра фотографий перейдите по ссылке https://cojo.ru/pricheski-i-strizhki/klava-koka-strizhka-33-foto/. Радуйте себя новым стилем!

    ReplyDelete
  5. Посмотри, приятель, какие шикарные картинки для поздравления мамочку с 8 марта! Это просто огонь! Я сам выбрал для своей мамы и она просто счастлива. А вот есть еще одна идея - зайди на сайт https://xwow.ru/mamochku-s-8-marta, там целая подборка веселых картинок для мамы. Так что, дружище, ищи вдохновение и смешные картинки на этом сайте!

    ReplyDelete
  6. Всем привет! Кто нить любит картинки Микеланджело? Ваще, они просто офигенные! Вот, например, недавно наткнулся на сайт, там можно целый архив онлайн-картинок Микеланджело найти. Классные штучки - я вам точно говорю! Вот ссылочка на сайт, если кому интересно: https://xwow.ru/mikelandzhelo. Там они все собраны - без шуток, суперские картиночки! Сам уже пол дня залипаю. Так что, если вам тоже интересно, смело заходите - не пожалеете ��

    ReplyDelete
  7. Отличный сервис! Обратился в автосервис АвтоКрасное с проблемой замены масла в акпп моего Volkswagen Passat 2015 года. Получил качественный и быстрый ремонт. Сотрудники профессионалы в своем деле, всегда готовы помочь и дать консультацию. Рекомендую всем владельцам автомобилей WAG обратиться именно в АвтоКрасное! Все работы проводятся с использованием оригинальных запчастей и с гарантией качества. Большой плюс - имеется удобный сайт, где можно записаться на сервис и узнать все подробности о замене масла в акпп: https://service-krasnoe.by/zamena-masla-v-akpp/. Спасибо за отличное обслуживание! (Максим Белов, владелец Volkswagen Passat)

    ReplyDelete
  8. Вот уже несколько месяцев я играю в интернет-казино Вавада и могу с уверенностью сказать, что это лучшее место для любителей азартных игр. Особенно мне нравится вавада мобильная версия зеркало на сегодня vavadayra13, она позволяет мне играть в любимые слоты и получать бонусы в любое время и в любом месте. Процесс регистрации простой, деньги выводятся быстро и без проблем. Интерфейс казино очень удобный и понятный, что позволяет сразу начать игру и получать крупные суммы выигрышей. Кроме того, Вавада радует своих игроков разнообразными акциями и приветственным бонусом, а также предлагает фриспины на популярных слотах. Я настоятельно рекомендую всем попробовать свою удачу в Вавада, ведь это лучшее казино в интернете. Не теряйте время, переходите по ссылке https://vavadax4.site/ и начинайте играть прямо сейчас!

    ReplyDelete
  9. Хочу поделиться своим отзывом о покупке керамической плитки в интернет-магазине RealGres.ru. Приобрела плитку Porcelanosa steel и осталась очень довольна своим выбором. Качество плитки на высшем уровне, она прочная и стойкая к механическим повреждениям. Благодаря интернет-магазину RealGres.ru я смогла приобрести эту плитку по выгодной цене и с доставкой по всей России. Если вы ищете стильную и качественную плитку, рекомендую вам обратить внимание на коллекцию Porcelanosa steel на сайте https://www.realgres.ru/plitka-steel-porcelanosa/. Лично я осталась довольна своей покупкой и обязательно обращусь в этот магазин еще раз!

    ReplyDelete
  10. Привет! Хочу поделиться с вами своим открытием - светло синими обоями! Это такой классный тренд, который сейчас очень популярен. Обои такого цвета внесут свежий и легкий акцент в ваш интерьер. Я вот нашел такую крутую подборку на сайте cultmir.ru, там можно найти много вариантов светло синих обоев. Посмотрите сами, ссылка в описании https://cultmir.ru/svetlo-sinie-oboi. Очень рекомендую, когда сам искал обои, там нашел кучу классных вариантов!

    ReplyDelete
  11. Привет, дружище! Наткнулся на сайт, где есть крутые поздравления на юбилей свадьбы! Актуально для любого юбилейного года! Обязательно проверь! Вот ссылка: https://prazdniki.info/s-dnem-svadby-pozdravleniya-yubileynye. Там просто огонь открыточки и картинки, прям тащишься! Будешь иметь в запасе крутой контент для поздравлений на свадебный юбилей! Проверено, сэкономил тебе время, братан!

    ReplyDelete
  12. На сайте sotni.ru есть отличная коллекция картинок Деку! Там можно найти 77 фото с этим персонажем аниме Моя геройская академия. Если ты тоже любишь Деку и хочешь насладиться его образами, то рекомендую посетить страницу https://sotni.ru/kartinki-deku/. Там ты найдешь множество красивых и качественных картинок, которые точно понравятся тебе!

    ReplyDelete
  13. Рекомендую посмотреть фотографии Лапшиной Марии на сайте Cojo.ru. В альбоме представлены 14 прекрасных снимков этой талантливой модели. Лапшина Мария воплощает в себе красоту и элегантность. Каждое фото отличается тщательно продуманным стилем и изысканным вкусом. У нее есть удивительная способность обращать на себя внимание и создавать неповторимый образ. Если вы хотите насладиться прекрасными фотографиями Лапшиной Марии, не упустите возможность посетить страницу https://cojo.ru/znamenitosti/lapshina-mariya-14-foto/. Там вы найдете все, что нужно для вдохновения и наслаждения красотой модели.

    ReplyDelete
  14. Укладка крупные локоны на длинные волосы - это прекрасный способ создать женственный и романтический образ. Большие локоны придают волосам объем и оригинальность, делая прическу заметной и эффектной. Они подходят как для повседневной носки, так и для особых случаев, будь то свадьба или вечеринка. Чтобы достичь такого эффекта, необходимо правильно уложить локоны, используя подходящие инструменты и средства для укладки. Если вы ищете источник вдохновения и идей, советую посетить сайт https://cojo.ru/pricheski-i-strizhki/ukladka-krupnye-lokony-na-dlinnye-volosy-34-foto/. Здесь вы найдете 34 фотографии с различными вариантами укладки крупных локонов на длинные волосы. Они помогут вам выбрать самые подходящие идеи для вашего стиля и типа волос. Итак, приступайте к экспериментам и создавайте прекрасные укладки с крупными локонами!

    ReplyDelete
  15. Привет, друзья! Хочу поделиться своим опытом игры в интернет-казино Вавада. Вначале немного сомневался, но после выигрыша в слотах был приятно удивлен. Безумно рад, что решил попробовать свою удачу, и она не подвела меня! Если ты тоже хочешь выигрывать крупные суммы и почувствовать азарт, не теряй времени - бмв надо играй вавада! Необыкновенные бонусы и приветственный бонус, а также фриспины вас приятно удивят! Удобный интерфейс и простая регистрация позволят начать играть прямо сейчас. А еще очень быстрые выплаты - выигрыш всегда вовремя и без лишних проблем. Не откладывай на завтра, проверь удачу сегодня на https://vavadah.site/. Желаю вам огромных выигрышей, друзья!

    ReplyDelete
  16. Я впервые решил попробовать свою удачу в онлайн-казино и выбрал для этого Вавада. Впечатления превзошли все ожидания! Вавада официальный вход с компьютера vavadafil8 был очень прост и быстр, удобный интерфейс делает игру максимально комфортной. Я не только наслаждаюсь игрой в разнообразные слоты, но и получил отличный приветственный бонус, который позволил мне сразу же начать выигрывать крупные суммы. Бонусы и фриспины регулярно появляются на счету, что дает дополнительные шансы на победу. Выплаты происходят очень быстро, без каких-либо задержек. Я доволен своим опытом игры в Вавада и с уверенностью рекомендую это казино всем любителям азарта! Присоединяйтесь и убедитесь в этом сами по ссылке https://vavadaa.fun/!

    ReplyDelete
  17. Привет, ребята! Кто из вас устраивает свадьбу? Хочу поделиться с вами крутой идеей, как украсить стулья на таком празднике. Знаете, какой материал очень популярен? Фатин! Это такой легкий и нежный материал, который сразу добавляет воздушности и романтики. Если вам интересно, то рекомендую заглянуть на эту статью. Там вы найдете много фото с вариантами украшения стульев фатином на свадьбу. Вдохновитесь и смело применяйте это красивое украшение на своём торжестве! Уверен, что гости будут в восторге, а вы сохраните незабываемые фото на память. Погнали, делать вашу свадьбу еще краше и ярче!

    ReplyDelete
  18. Привет, ребята! Вот я нашел отличный сайт с поздравлениями на тему Пожелания мира и добра! Там много классных картинок и открыток, которые можно отправить друзьям и близким. Ведь никогда не бывает лишней порции доброты и позитива, верно? Я сам уже нашел там несколько крутых картинок для поздравлений с днем рождения. В общем, советую заглянуть по ссылке https://prazdniki.info/pozhelaniya-mira-i-dobra и поделиться этим сайтом с друзьями. Они точно оценят! Всем мира и добра!

    ReplyDelete
  19. На фотографиях, которые я недавно нашел в интернете, показаны невероятные национальные костюмы Кавказа! Они просто бомба! Я узнал много интересного о культуре и традициях этого региона, а также ознакомился с различными вариантами национальных костюмов. Если вам тоже интересно познакомиться с этой темой, обязательно перейдите по ссылке национальные костюмы кавказа и заполучите порцию вдохновения! Уверяю вас, вы не пожалеете!

    ReplyDelete
  20. Привет, друзья! Хочу поделиться с вами отличным сайтом, где вы найдете невероятные фотографии Эшли Тайлер. Эта невероятно талантливая модель просто взорвала моё сердце своей красотой! На странице есть целых 50 фотографий, каждая из которых просто потрясающа. Понравились все, но особенно впечатлили портреты с улыбкой - такие простые, но в то же время такие милые и чувственные. Даже если вы не фанатка моделирования, вам однозначно стоит посмотреть эту галерею - вы не пожалеете! Переходите по ссылке https://douo.ru/eshli-tayler/ и наслаждайтесь этими шедеврами!

    ReplyDelete