SusPagination

Полоса страниц для длинных списков — текущая страница, видимое окно, опционально first/last.
Пакет
SusKit · Атомы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Length | Prop<int> | 1 | v-model |
Model | Prop<int> | 1 | v-model |
TotalVisible | Prop<int> | 5 | v-model |
ShowFirstLast | Prop<bool> | false | v-model |
Disabled | Prop<bool> | false | v-model |
Circle | Prop<bool> | false | v-model |
Density | Prop<string> | "default" | v-model |
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
PageChanged | OnPageChanged | int |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
keyboard-focussus-paginationsus-pagination__btnsus-pagination__pagesus-pagination__page--activesus-pagination__pagessus-pagination--circlesus-pagination--density-comfortablesus-pagination--density-compactsus-pagination--disabled
Использование
xml
<template>
<sus:SusPagination :Length="PageCount.Value"
:Model="Page.Value"
TotalVisible="5"
ShowFirstLast="true"
@page-changed="OnPage" />
</template>
<script>
public Prop<int> PageCount = new(12);
public Prop<int> Page = new(1);
void OnPage(int page) { Page.Value = page; }
</script>csharp
var pages = new SusPagination();
pages.Length.Value = 20;
pages.Model.Value = 1;
pages.TotalVisible.Value = 5;
pages.Circle.Value = true;
pages.OnPageChanged += page => { /* … */ };Заметки
Length— общее количество страниц;Model— активная страница (нумерация с 1).Density:compact·default·comfortable.