dannyrios81 / yii-clear-filters-gridview-fork
这个yii扩展可以帮助您通过右上角的额外图像清除GridViews中记住的筛选值。
Requires
- php: >=5.1.0
- yiisoft/yii: *
This package is not auto-updated.
Last update: 2024-09-24 17:16:47 UTC
README
EButtonColumnWithClearFilters Yii扩展在您使用扩展来记住筛选值时,向CButtonColumn实现默认的可能性添加了一些功能。这个扩展可以帮助您清除记住的筛选值。
还可以查看Remember Filters Gridview扩展。
将在顶部列(与AJAX筛选同一行)放置一个图像。点击后,筛选将被清除,内容将刷新以显示所有可用项目。
要求
- Yii 1.1
捐赠
资源
- 扩展页面(别忘了投上您的支持票)
- 报告错误
- 论坛
- Remember Filters Gridview扩展
安装
我们建议使用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, 存储, 重新加载, 控制器, 模型, 行为, 接口, 小部件, 固定, 场景
变更日志
贡献
- 进行Fork。
- 创建一个分支(
git checkout -b my_enhancement_name
) - 提交您的更改(
git commit -am "增强JavaScript"
) - 推送到分支(
git push origin my_enhancement_name
) - 打开一个Pull Request
- 享受一杯清爽的Diet Coke并等待