EDataTables - добавить пользовательскую сортировку после $widget-> run () в yii1.x

Я использую "ext.edatatables.EDataTables" в структуре Yii 1.x. У меня есть сценарий сортировки столбца после загрузки таблицы на экран. Сортировку необходимо производить через раскрывающийся список.

Вот мой код:

$sort = new EDTSort('Bank', array(
                            'bank_branch',
                            'manager',
                            'Bankid',
                            'BankName',
                            'empCount',
                        )
                    );
$sort->defaultOrder = "empCount DESC";

$widget = $this->createWidget('ext.edatatables.EDataTables', array(
         'id'            => 'bank_list',
         'dataProvider'  => $model->search($criteria, $sort),
         'ajaxUrl'       => 'SomeURL',
          'afterAjaxUpdate'=>'function(id,data) {
            if(data["iTotalRecords"] == 0){
                $(".pagination").hide();
            }
         }',
         'options' => array(
                'bStateSave' => true,
                'responsive' => true,
                'oLanguage' => array(
                    'sSearchPlaceholder' => 'Search Bank Here',
                    'sInfoEmpty' => "",
                ),
         ),
        'columns' => array(
                'bank_branch',
                'manager',
                'Bankid',
                array(
                    'name'=>'BankName',
                    'value'=> function ($data){
                        return $this->getBankName($data->id);
                    },
                    'sortable' => true,
                    'type'=>'raw',
                    'htmlOptions'=>array('class'=>''),
                    ),
                array(
                    'name'=>'Employee Count',
                    'value'=> function ($data){
                        return $this->methodToGetCustomCount($data->id);
                    },
                    'type'=>'raw',
                    'htmlOptions'=>array('class'=>'all'),
                    ),
                array(
                    'header'=>'Action',
                    'class' => 'EButtonColumn',
                    'htmlOptions' => array('style' => 'white-space: nowrap; width:100px;','class'=>'all'),
                    'template' => '{update}',
                    'buttons' => array(
        
                        'update' => array(
                            'options' => array('rel' => 'tooltip', 'data-toggle' => 'tooltip', 'title' => Yii::t('app', 'Edit bank'), 'class' => 'btn btn-xs btn-warning'),
                            'label' => '<i class="fa fa-pencil"></i>',
                            'url' => 'SomeURL',
                            'imageUrl' => false,
                        ),

                    ),
                ),
            ),
        ));

Используя внутренний запрос через CDbCriteria, я могу получить отсортированные значения, но EdataTable повторно сортирует их по умолчанию при обновлении страницы.

Однако я использую этот параметр для сортировки по умолчанию через $sort->defaultOrder EDTSort.

Код:

$sort = new EDTSort('Bank', array(
                             'bank_branch',
                            'manager',
                            'Bankid',
                            'BankName',
                            'empCount',
                        )
                    );
$sort->defaultOrder = 'BankName DESC';

При обновлении страницы в течение 1 секунды я вижу фактическое отсортированное значение, а затем EdataTable выполняет повторную сортировку таблицы по умолчанию.

Пожалуйста помоги.

0 ответов

Другие вопросы по тегам