pentium10/ yii-clear-filters-gridview
这个yii扩展通过使用额外的右上角图像,帮助您清除GridViews上记住的筛选值。
Requires
- php: >=5.1.0
- yiisoft/yii: *
This package is auto-updated.
Last update: 2024-08-23 23:49:31 UTC
README
The 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/目录中,在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, 存储, 重新加载, 控制器, 模型, 行为, 接口, 小部件, 粘贴, 场景
变更日志
贡献
- 将其Fork。
- 创建一个分支(
git checkout -b my_enhancement_name
) - 提交您的更改(
git commit -am "增强JavaScript"
) - 推送到分支(
git push origin my_enhancement_name
) - 打开一个Pull Request
- 享受一杯清爽的健怡可乐并等待