![](/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.