pentium10/yii-clear-filters-gridview

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

1.0.2 2013-12-25 22:09 UTC

This package is auto-updated.

Last update: 2024-08-23 23:49:31 UTC


README

The 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/目录中,在config/main.php中添加'import' => 'application.components.EButtonColumnWithClearFilters', [...],然后在您想要继承新功能的每个小部件的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:如果您想在清除筛选之前执行某些JavaScript代码,请使用此属性传递您的自定义代码。当您想要停止清除发生时,仅允许使用'return false;'。这将停止所有进一步的JavaScript代码和HTTP请求的执行。不允许使用'return true;',因为这会破坏组件的使用。

  • onClick_AfterClear:如果您想在清除之后但AJAX调用之前执行某些JavaScript代码,请使用此属性传递您的自定义代码。当您想要停止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时在按钮上使用的标签。默认为:Clear Filters

步骤 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参数传递给控制器,为此您可以使用链接或按钮。

此扩展还有一个配套的记住过滤器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. 享受一杯清爽的健怡可乐并等待