JAY 2017-07-20 09:37:54 6055次浏览 3条评论 7 2 0

原文链接:https://blog.oonne.com/site/blog?id=10

简介

Yii2 可拖动排序的GridView扩展。拖动操作基于jQuery UI的sortable widget。

安装

通过composer安装。

执行以下命令:

php composer.phar require --prefer-dist "oonne/yii2-sortable-grid-view-widget" "*"

或者把以下内容添加到composer.json中:

"oonne/yii2-sortable-grid-view-widget" : "*"

使用

首先在需要排序的表中增加排序的字段,比如“sequence”。

这个字段需要unsigned int类型,获取这张表的内容时基于这个字段倒序排序。拖动排序时,每行的排序字段会跟着改变。

在model里增加一个behavior,代码如下:

use oonne\sortablegrid\SortableGridBehavior;


public function behaviors()
{
    return [
        'sort' => [
            'class' => SortableGridBehavior::className(),
            'sortableAttribute' => 'sequence'
        ],
    ];
}

在controller里增加一个action,代码如下:

use oonne\sortablegrid\SortableGridAction;


public function actions()
{
    return [
        'sort' => [
            'class' => SortableGridAction::className(),
            'modelName' => Model::className(),
        ],
    ];
}

在view里加入widget,代码如下:

use oonne\sortablegrid\SortableGridView;

SortableGridView::widget([
    'dataProvider' => $dataProvider,
    'sortableAction' => ['/bannersuper/sequence'],
    'columns' => [
        [
            'class' => 'yii\grid\SerialColumn',
            'contentOptions' => ['class' => 'sortable-handle'],
        ],
        [
            'attribute' => 'sName',
        ],
    ]
])

拖动每个tr里加入'.sortable-handle'的tr,可以对整行进行拖动排序。其他内容可以正常选择和操作,不可拖动。详见Jquery UI sortable widget的文档。

觉得很赞
  • 评论于 2017-09-18 09:51 举报

    要是有效果图就更好了

    1 条回复
    评论于 2017-10-02 16:25 回复

    就跟普通的GridView一样,只是多了拖动的功能

  • 评论于 2018-05-03 19:26 举报

    你好,这个插件现在是下载不了了吗

    2 条回复
    评论于 2018-05-04 09:41 回复

    抱歉名字写错了,应该是:

    php composer.phar require --prefer-dist "oonne/yii2-sortable-grid-view" "*"
    

    或者把以下内容添加到composer.json中:

    "oonne/yii2-sortable-grid-view" : "*"
    
    评论于 2018-05-05 17:33 回复

    好嘞,多谢(〃'▽'〃)

  • 评论于 2018-06-01 09:23 举报

    感谢楼主!又学了一招!

您需要登录后才可以评论。登录 | 立即注册