dannyrios81/yii-clear-filters-gridview-fork

这个yii扩展可以帮助您通过右上角的额外图像清除GridViews中记住的筛选值。

1.0.2 2013-12-25 22:09 UTC

This package is not auto-updated.

Last update: 2024-09-24 17:16:47 UTC


README

EButtonColumnWithClearFilters Yii扩展在您使用扩展来记住筛选值时,向CButtonColumn实现默认的可能性添加了一些功能。这个扩展可以帮助您清除记住的筛选值

还可以查看Remember Filters Gridview扩展。

将在顶部列(与AJAX筛选同一行)放置一个图像。点击后,筛选将被清除,内容将刷新以显示所有可用项目。

Please login to see the Demo image!

要求

  • Yii 1.1

捐赠

点击此处进行捐赠

资源

安装

我们建议使用Composer安装此扩展。将以下内容添加到您的composer.json文件中的require部分

"pentium10/yii-clear-filters-gridview" : "dev-master"

您还需要包含Composer的自动加载器

    require_once __DIR__.'/protected/vendor/autoload.php';

使用方法

步骤1

要使用此扩展,请将此文件复制到您的components/目录,将'import' => 'application.components.EButtonColumnWithClearFilters'添加到您的config/main.php,并在您想要继承新功能的每个小部件的Column数组中使用此列

array(
  'class'=>'EButtonColumnWithClearFilters',
   //'clearVisible'=>true,
   //'onClick_BeforeClear'=>'alert('this js fragment executes before clear');',
   //'onClick_AfterClear'=>'alert('this js fragment executes after clear');',
   //'clearHtmlOptions'=>array('class'=>'custom-clear'),
   //'imageUrl'=>'/path/to/custom/image/delete.png',
   //'url'=>'Yii::app()->controller->createUrl(Yii::app()->controller->action->ID,array("clearFilters"=>1))',
   //'label'=>'My Custom Label',
 ),

上面已经列出了所有可能的定制,您应该注释掉那些您不会重写的。最小设置只是列的类类型。除此之外,您仍然可以使用/覆盖CButtonColumn以满足您的需求。

  • clearVisible:一个用于确定按钮是否可见的PHP表达式

  • onClick_BeforeClear:如果您想在清除筛选之前执行某些JS代码,请使用此属性传递您的自定义代码。当您想阻止清除发生时,您只允许使用'return false;'。这将停止所有进一步的JS代码和HTTP请求的执行。不允许使用'return true;',它将破坏组件的使用。

  • onClick_AfterClear:如果您想在清除后但在AJAX调用之前执行某些JS代码,请使用此属性传递您的自定义代码。当您想阻止AJAX调用发生时,您只允许使用'return false'。这将停止表单被重新加载。如果您想通过传统的GET请求而不是AJAX清除表单,请在这里'return true'。

  • clearHtmlOptions:要传递给按钮的HTML元素的关联数组。默认为:array('class' => 'clear','id' => 'cbcwr_clear','style' => 'text-align:center;display:block;');

  • imageUrl:按钮的图像URL。如果没有设置或为false,则使用文本链接。默认为:$this->grid->baseScriptUrl.'/delete.png'

  • url:用于生成按钮URL的PHP表达式。默认为:'Yii::app()->controller->createUrl(Yii::app()->controller->action->ID,array("clearFilters" => 1))'

  • label:没有提供URL时按钮上要使用的标签。默认为:清除筛选

步骤2

如果您正在使用Remember Filters Gridview扩展,您需要在控制器中添加以下代码。这段代码放置在处理gridview显示的动作方法中,并在初始化您的模型之后。

if (intval(Yii::app()->request->getParam('clearFilters'))==1) {
    EButtonColumnWithClearFilters::clearFilters($this,$model);//where $this is the controller
}

示例动作:actionAdmin()

public function actionAdmin() {
        $model = new registration('search');
		if (intval(Yii::app()->request->getParam('clearFilters'))==1) {
			EButtonColumnWithClearFilters::clearFilters($this,$model);//where $this is the controller
		}
        $this->render('admin', array(
            'model' => $model,
        ));
}

如果您不需要清除筛选器的按钮功能,也可以将带有值为1的clearFilters参数传递给控制器,为此您可以使用链接或按钮。

此扩展还有一个Remember Filters Gridview配对。

yii, 清除, 筛选器, cgridview, gridview, 存储, 重新加载, 控制器, 模型, 行为, 接口, 小部件, 固定, 场景

变更日志

CHANGELOG.md

贡献

  1. 进行Fork。
  2. 创建一个分支(git checkout -b my_enhancement_name
  3. 提交您的更改(git commit -am "增强JavaScript"
  4. 推送到分支(git push origin my_enhancement_name
  5. 打开一个Pull Request
  6. 享受一杯清爽的Diet Coke并等待