Alphapager advanced

Total 48 items.
#Last NameFirst NameBornDied
1CalatravaSantiago1951/07/28
2CalderAlexander1898/07/261976/11/11
3CaleJ.J.1938/12/052013/07/27
4CaleJohn1942/03/09
5CamusAlbert1913/11/071960/01/04
6CanettiElias1905/07/251994/08/14
7CapoteTruman1924/09/301984/08/25
8CarrollLewis1832/01/271898/01/14
9Cartier-BressonHenri1908/08/222004/08/02
10CashJohnny1932/02/262003/09/12
11CasimirHendrik1909/07/152000/05/04
12CassidyEva1963/02/021996/11/02
13CastellanataDan1957/10/29
14CaveNick1957/09/22
15CélineLouis-Ferdinand1894/05/271961/07/02
16ChaplinCharles1889/04/161977/12/25
17ChapmanGraham1941/01/081989/10/04
18CharlesRay1930/09/232004/06/10
19ChomskyNoam1928/12/07
20Christo1935/06/132020/05/31
21ChubbyPopa1960/03/31
22CleeseJohn1939/10/27
23ClintonBill1946/08/19
24CockerJoe1944/05/202014/12/22
25CoetzeeJ.M.1940/02/09
26CohenLeonard1934/09/212016/11/07
27Cohn-BenditDaniel1945/04/04
28ColtraneJohn1926/09/231967/07/17
29ConnerySean1930/08/252020/10/31
30ConwayJohn1937/12/262020/04/11
31CooderRy1947/03/15
32CopernicusNicolaus1473/02/101543/05/14
33CoppolaFrancis Ford1939/04/07
34CorbusierLe1887/10/061965/08/27
35CoreaChick1941/06/122021/02/09
36CostelloElvis1954/08/25
37CouplandDouglas1961/12/30
38CowardNoël1899/12/161973/03/26
39CoyneKevin1944/01/272004/12/02
40CranstonBryan1956/03/07
41CrichtonMichael1942/10/232008/11/04
42CrickFrancis1916/06/082004/07/29
43CronkiteWalter1916/11/042009/07/17
44CrosbyDavid1941/08/142023/01/18
45CruijffJohan1947/04/252016/03/24
46CrumbRobert1943/08/30
47cummingse.e.1894/10/141962/09/03
48CurtisIan1956/07/151980/05/18

Yii2 Alphapager lets you do alphabetic paging in the Yii framework 2.0. On this page it is shown with some special settings.

The relevant code involved is something like this:

<?php

use sjaakp\alphapager\ActiveDataProvider;
use sjaakp\alphapager\AlphaPager;

$query = Person::find()->orderBy('last_name, first_name');

$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'alphaAttribute' => 'last_name',
    'alphaDigits' => 'compact',                // one button for digits '0' - '9'
    'alphaPages' => [
        'P' => [
               'label' => 'pq',                // label button 'P' with 'pq'
               'pattern' => [ '[PpQq]' ],      // regular expression: include words starting with 'Q' under 'P'
           ],
        'Q' => false,                          // suppress page 'Q'
        'Z' => [
               'label' => 'x-z',               // label button 'Z' with 'x-z'
               'pattern' => [ '[X-Zx-z]' ],    // regular expression: include words starting with 'X' or 'Y' under 'Z'
           ],
        'X' => false,                          // suppress page 'X'
        'Y' => false,                          // suppress page 'Y'
    ],
    'pagination' => false                      // switch off normal pagination
]);
?>

<?= AlphaPager::widget([
    'dataProvider' => $dataProvider,
    'preButtons' => [],                       // no 'all' button
    'lowerCase' => true                       // buttons in lower case
]) ?>

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'last_name:ntext',
        'first_name:ntext',
        'born:date',
        'died:date',
    ],
]); ?>

A basic example is here.