簡體   English   中英

在CGridView Yii中有一個用於搜索的過濾器框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM