Alphapager advanced

Total 54 items.
#Last NameFirst NameBornDied
1BacallLauren1924/09/162014/08/12
2BachJohann Sebastian1685/03/211750/07/28
3BaconFrancis1909/10/281992/04/28
4BadalamentiAngelo1937/03/222022/12/11
5BakerJosephine1906/06/031975/04/12
6BardotBrigitte1934/09/28
7BargeldBlixa1959/01/12
8BarkinEllen1954/04/16
9BarrettSyd1946/01/062006/07/07
10BasieCount1904/08/211984/04/26
11BatailleGeorges1897/09/101962/07/10
12BauschPina1940/07/272009/06/30
13BeauvoirSimone de1908/01/091986/04/14
14BecketSamuel1906/04/131989/12/22
15BeefheartCaptain1941/01/152010/12/17
16BelafonteHarry1927/03/012023/04/25
17BelmondoJean-Paul1933/04/092021/09/06
18BergmanIngmar1918/07/142007/07/30
19BerlageHendrik Petrus1856/02/211934/08/12
20BerryChuck1926/10/182017/03/18
21BertolucciBernardo1940/03/162018/11/26
22BeuysJoseph1921/05/121986/01/23
23Björk1965/11/21
24BlakeWilliam1757/11/281827/08/12
25BlakeyArt1919/10/111990/10/16
26BlankBoris1952/01/15
27BogartHumphrey1899/01/231957/01/14
28BohrNiels1885/10/071962/11/18
29BöllHeinrich1917/12/211985/07/16
30Bono1960/05/10
31BooleGeorge1815/11/021864/12/08
32BorchertWolfgang1921/05/201947/11/20
33BorgesJorge Luis1899/08/241986/06/14
34BowieDavid1947/01/082016/01/10
35BraccoLorraine1954/10/02
36BrandauerKlaus Maria1943/06/22
37BrandoMarlon1924/04/032004/07/01
38BrechtBertolt1898/02/101956/08/14
39BreitnerGeorge Hendrik1857/09/121923/06/05
40BrelJacques1929/04/081978/10/09
41BreukerWillem1944/11/042010/07/23
42BroodHerman1946/11/052001/07/11
43BrouwerL.E.J.1881/02/271966/12/02
44BrownArthur1942/06/24
45BrownJames1933/05/032006/12/25
46BrubeckDave1920/12/062012/12/05
47BrunaDick1927/08/232017/02/16
48BugattiEttore1881/09/151947/08/21
49BukowskiCharles1920/08/161994/03/09
50BuñuelLuis1900/02/221983/07/26
51BurdonEric1941/05/01
52BurroughsWilliam S.1914/02/051997/08/02
53BushKate1958/07/30
54ByrneDavid1952/05/14

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.