2014-03-14 51 views
1
搜索

我用CGridView這裏是我的代碼: -有過濾器盒在CGridView Yii的

<?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'), 
     ), 
    ), 
)); ?> 

這裏是我的輸出 enter image description here

這裏姓選項卡下有一個文本框,在那裏我想要爲此添加類。

這裏是這個文本框

<div class="filter-container"> 
<input type="text" name="Spark[sparktype_id]"> 
</div> 

我想新類添加到這個輸入標籤的HTML。

在此先感謝...

回答

0

嘗試

<?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'), 
     ), 
    ), 
)); ?> 
0

您必須創建一個擴展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部of`這個變量:

    'columns'=>array( ... array( 'name'=>'name', 'filterClass'=>'CustomClassForFilterInputInNameColumn' ), ... )