如何为Yii框架中TbExtendedGridView的筛选搜索框添加占位符?
给TbExtendedGridView筛选栏搜索字段添加占位符的方法
你之前直接在TbExtendedGridView配置里添加htmlOptions,会把属性加到组件的外层容器div上,这不是正确的位置。要给筛选栏的输入框加占位符,有两种常用实现方式:
1. 针对单个列的筛选框配置(推荐)
在columns数组中,给目标列添加filterHtmlOptions属性,指定占位符内容。这种方式可以为不同列设置差异化的提示文字,灵活性更高:
$this->widget('bootstrap.widgets.TbExtendedGridView', array( 'id' => 'xtag-grid', 'responsiveTable' => true, 'dataProvider' => $model->search(), 'type' => 'bordered striped', 'filter' => $model, 'columns' => array( // 示例:给name列的筛选框添加占位符 array( 'name' => 'name', 'filterHtmlOptions' => array('placeholder' => '请输入名称搜索'), ), // 其他列保持原有定义即可 'description', // 更多列配置... ), ));
2. 统一给所有筛选框添加占位符
如果希望所有筛选输入框使用同一个占位符,可以通过注册JavaScript代码实现,无需修改每一列的配置:
// 先注册脚本 Yii::app()->clientScript->registerScript('grid-filter-placeholder', " $(document).ready(function() { // 给指定GridView的所有筛选输入框添加占位符 $('#xtag-grid .filters input').attr('placeholder', '请输入搜索内容'); }); "); // 初始化GridView $this->widget('bootstrap.widgets.TbExtendedGridView', array( 'id' => 'xtag-grid', 'responsiveTable' => true, 'dataProvider' => $model->search(), 'type' => 'bordered striped', 'filter' => $model, 'columns' => array( // 列定义... ), ));
注意事项
- 第一种方式依赖
TbExtendedGridView的列实现(基于Yii的CDataColumn),默认支持filterHtmlOptions属性; - 第二种方式中的
#xtag-grid需要和你GridView的id保持一致,避免影响页面上的其他表格。
内容的提问来源于stack exchange,提问作者Martin Gaidos
相关产品推荐
相关产品推荐

