![](/img/trans.png)
[英]Yii Cgridview Filter Input Box Not Showing Search String After Searching
[英]there is filter box for searching in CGridView Yii
我用过CGridView这是我的代码:-
<?php $this->widget('bootstrap.widgets.TbGridView', array(
'type'=>'striped bordered condensed',
'dataProvider'=>$model->searchsecond(),
'filter'=>$model,
'columns'=>array(
array('name'=>'id', 'header'=>'#'),
array('name'=>'sparktype_id', 'header'=>'First name'),
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
),
),
)); ?>
这是我的输出
在“名字”选项卡下,这里有一个文本框,我想为此添加类。
这是此文本框的html
<div class="filter-container">
<input type="text" name="Spark[sparktype_id]">
</div>
我想向该输入标签添加新类。
提前致谢...
尝试
<?php $this->widget('bootstrap.widgets.TbGridView', array(
'type'=>'striped bordered condensed',
'filterCssClass'=>'your Css class'
'dataProvider'=>$model->searchsecond(),
'filter'=>$model,
'columns'=>array(
array('name'=>'id', 'header'=>'#'),
array('name'=>'sparktype_id', 'header'=>'First name'),
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
),
),
)); ?>
您必须创建一个扩展CDataColumn
类的类,并将其放入例如extensions
文件夹中。
不要忘记在main.php
配置中添加此文件夹以导入部分
'import'=>array(
...
'application.extensions.*',
...
)
在其中,您必须重写renderFilterCellContent
方法。
class MyDataColumn extends CDataColumn{
public function __construct($grid) {
parent::__construct($grid);
}
protected function renderFilterCellContent()
{
if(is_string($this->filter))
echo $this->filter;
elseif($this->filter!==false && $this->grid->filter!==null && $this->name!==null && strpos($this->name,'.')===false)
{
if(is_array($this->filter))
echo CHtml::activeDropDownList($this->grid->filter, $this->name, $this->filter, array('id'=>false,'prompt'=>''));
elseif($this->filter===null)
echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false, 'class'=>'HereIsMyClassNameForFilterInput'));
}
else
parent::renderFilterCellContent();
}
}
注意: echo CHtml::activeTextField(..., ..., ..., 'class'=>'
HereIsMyClassNameForFilterInput '));
另外,在引导程序扩展的类TbDataColumn
中,必须更改其扩展的类的名称。
class TbDataColumn extends MyDataColumn
{
...
如果要为每个输入添加不同的类,则可以:
添加属性public $filterClass = "";
到MyDataColumn
类;
更改echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false, 'class'=>'HereIsMyClassNameForFilterInput'));
echo CHtml::activeTextField($this->grid->filter, $this->name, array('id'=>false, 'class'=>$this->filterClass));
并在TbGridView
小部件的column
部分中设置此变量的值:
'columns'=>array( ... array( 'name'=>'name', 'filterClass'=>'CustomClassForFilterInputInNameColumn' ), ... )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.