Alphapager advanced

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

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.