Ce sunt
Sunt grid-uri la care se pot specifica coloane obligatorii (care sunt vizibile mereu) si coloane specificate in mod dinamic ca fiind vizibile. Acestea din urma pot fi folosite pentru a permite user-ului sa-si aleaga coloanele pe care vrea sa le vada, pe langa cele obligatorii.
Cum se face
A. In index.php
echo MaxGridView::widget([
'dataProvider' => $dataProvider,
'id' => 'grid-list',
'filterModel' => $searchModel,
'layout' => $gridLayout,
'mandatoryColumns' => ['theSerial','partner','partnerCif','seriesNumber','issueDate','actions'],
'displayColumns' => UserOption::getDisplayColumns($this),
'hideInPopupColumns' => [$dea ? null : 'accountingStatus']
'settingsButtonCssClass' => 'gigi',
'summary' => Yii::t('app', 'Page {page} of {pageCount}, containing {count} items of total {totalCount}, from {begin} to {end}.'),
Adica:
- folosim MaxGridView
- setam coloanele obligatorii in mandatoryColumns
- setam celelalte coloane vizibile in displayColumns ca UserOption::getDisplayColumns($this)
- putem customiza pozitia si aspectul butonului de configurare coloane setand settingsButtonCssClass; daca ai bara de prerequisites, foloseste indexSettingsButtonLower
- daca exista coloane care – dintr-un motiv sau altul – trebuie ascunse in popup-ul de selectie coloane, atunci ele se trec in array-ul hideInPopupColumns
Atentie! fiecare coloana a grid-ului – din “columns” – trebuie sa aiba acum o cheie. Adica array-ul columns devine acum array asociativ complet. Vezi implementarea din index-ul de la invoice sau partner.
B. In controller
- trebuie ca controller-ul sa extinda frontend/CommonController
- trebuie sa adaugi get-grid-properties-form la behaviours()
C. In search model
$listingOptions = UserOption::getListingOptions(); $dataProvider->pagination->pageSize = isset($listingOptions['pageSize'])?$listingOptions['pageSize'] :30;
Adica:
- preluam pageSize din setarile user-ului si o folosim – daca aceasta este setata
D. In cazul in care modelul are campuri custom, atunci specificam asta in MaxGridView
MaxGridView::widget([ ( ... ) 'customFieldModelType' => CustomField::$MODELTYPE_CUSTOMER
Facem aceasta pentru ca in popup-ul de coloane sa se afiseze si campurile custom.
Categories: CORES (php core codebase), DOCUMENTATIE TEHNICA, HINTS (tehnice), Special content, UI/UX |
Leave a Reply
[TOP]