定制 sereja3578/yii2-freeze-column 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

sereja3578/yii2-freeze-column

Composer 安装命令:

composer require sereja3578/yii2-freeze-column

包简介

Package

README 文档

README

Для базового использования нужно

Где-нибудь в коде GridView виджета, во время запуска, добавить код:

if ($this->freezed && $this->freezeOptions) {
        $freezeOptions = Json::htmlEncode(array_merge($this->freezeOptions, ['container' => "#{$id}-container"]));

        FreezeAsset::register($view);

        $view->registerJs("jQuery('#$id-container').freezeGridView('init', $freezeOptions);");
}

Например в виджете GridView унаследованном от kartik, который вы используете в своем проекте.

В этот виджет нужно так же добавить нужные свойства

/**
 * Включение закрепления колонок
 * @var bool
 */
public $freezed = true;

/**
 * Параметры закрепления (перечислить колонки, которые надо закрепить)
 * @var array
 *
 * ```php
 * $this->freezeOptions = [
 *   'freezeLeftColumns' => ['id', 'name', ...]
 *   'freezeRightColumns' => ['id', 'name', ...]
 * ]
 * ```
 */
public $freezeOptions = [];

Работать же с колонками и формировать их массив мы будем в SearchModel, а именно в базовой модели, так чтобы методы были доступны везде или в trait, так удобнее. Значит добавляем туда нужные методы:

/**
 * Возвращает настройки для закрепления
 * @return array
 */
public function getFreezeOptions() : array
{
    return [
        'freezeLeftColumns' => $this->getFreezeLeftColumns(),
        'freezeRightColumns' => $this->getFreezeRightColumns()
    ];
}

Методы getFreezeLeftColumns и getFreezeRightColumns не привожу в документации, так как нет смысла, они у каждого свои. Но суть такая - эти методы должны возвращать названия колонок, которые нужно закрепить. Как и где их сохранять это уже решать каждому по своему. У меня сделано в базе данных, кто-то может в куках или сессии.

Использовать вы это сможете так:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => $searchModel->getGridColumns(),
    'freezeOptions' => $searchModel->getFreezeOptions(),
])?>

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固