卡拉库姆/yii2-grid

此包已被弃用且不再维护。未建议替代包。

此扩展提供增强的网格视图,树形网格视图

安装量3,080

依赖: 1

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2016-10-19 19:39 UTC

This package is not auto-updated.

Last update: 2018-10-13 19:49:39 UTC


README

此扩展受到 leandrogehlen/yii2-treegrid 的启发,并进行了一些改进和错误修复。TreeGridView 扩展 yii\grid\GridView,因此您可以使用所有它的行为,例如列宽选项或过滤。

此外,此扩展还包括标准 Yii2 GridView 的 table-responsive 版本(使用类 \karakum\grid\GridView)。要禁用此功能,只需设置 'tableWrapperOptions' => false 属性。

这是 Yii 2 的 jQuery TreeGrid 扩展 jQuery TreeGrid。它将 TreeGridView 组件封装在 Yii 小部件中,因此在 Yii 应用程序中使用 TreeGridView 组件变得极其简单。

安装

安装此扩展的首选方法是使用 composer

运行以下命令:

php composer.phar require --prefer-dist karakum/yii2-grid "*"

或添加以下内容到您的 composer.json 文件的 require 部分中。

"karakum/yii2-grid": "*"

如何使用

模型


use yii\db\ActiveRecord;

/**
 * @property integer $id
 * @property string $name
 * @property string $description
 * @property integer $parent_id
 */
class Tree extends ActiveRecord 
{

    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'tree';
    }  
    
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name', 'description'], 'required'],
            [['name', 'description'], 'string'],
            [['parent_id'], 'integer']
        ];
    }
}

控制器

use yii\web\Controller;
use Yii;
use yii\data\ActiveDataProvider;

class TreeController extends Controller
{

    /**
     * Lists all Tree models.
     * @return mixed
     */
    public function actionIndex()
    {
        $query = Tree::find();
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        $dataProvider->pagination = false;

        return $this->render('index', [
            'dataProvider' => $dataProvider
        ]);
    }

视图

use karakum\grid\TreeGridView;
  
<?= TreeGridView::widget([
        'dataProvider' => $dataProvider,
//        'keyColumnName' => 'id',                         // these are defaults
//        'parentColumnName' => 'parent_id',
//        'parentRootValue' => null,
        'pluginOptions' => [
			'treeColumn' => 3,                             // name
        ],
        'columns' => [
			['class' => 'yii\grid\CheckboxColumn', 'options' => ['style' => 'width: 40px;']],
			['class' => 'yii\grid\SerialColumn', 'options' => ['style' => 'width: 40px;']],
			['attribute' => 'id', 'options' => ['style' => 'width: 100px;']],
            'name',
            'description',
            'parent_id',
            ['class' => 'yii\grid\ActionColumn']
        ]     
      ]); ?>