Search code examples
phpgridviewyiidataprovidercgridview

How to fix the Column size of CGRIDVIEW in YII?


I want to fix the column width of GridView . As i am using GridView , the width of the columns is adjusted as per the data ... my goal is to set a fixed width for every columns eg: for "ID" column I want width=10px; for "Name" column it should be width=50px ... and soo on

The View is

if(!empty($selected_columns))
    {
        $this->widget('bootstrap.widgets.TbGridView', array(
            'type' => 'bordered striped',
            'id' => 'bike_search_grid',   
            'dataProvider' => $model->search_bike(),
            'ajaxUpdate' => true, //false if you want to reload aentire page (useful if sorting has an effect to other widgets)
            'filter' => null, 
            'template'=>'<div style="overflow:auto;">{items}</div>{pager}{summary}',
            'columns' => $selected_columns,
            'enablePagination' => true
        ));
    }

EDITED :::

And the Model is

$selected_columns = array();
$selected_columns[] = array(
                'header' => 'ID',
                'name' => 'bike_id',
                'value'=>'$data["bike_id"]', 
                'htmlOptions'=>array('width'=>'30'),
                'headerHtmlOptions'=>array('width'=>'30')
            );

Solution

  • SOLUTION :=>

    VIEW :

    $this->widget('bootstrap.widgets.TbGridView', array(
                'type' => 'bordered striped',
                'id' => 'bike_search_grid',   
                'dataProvider' => $model->search_bike(),
                'ajaxUpdate' => true, //false if you want to reload aentire page (useful if sorting has an effect to other widgets)
                'filter' => null, 
                'template'=>'<div style="overflow:auto;">{items}</div>{pager}{summary}',
                'columns' => $selected_columns,
                'enablePagination' => true
            ));
    

    MODEL:

      $selected_columns[] = array(
                        'header' => 'ID',
                        'name' => 'bike_id',
                        'type'=>'html',
                        'htmlOptions'=>array('style'=>'word-wrap: break-word;'),
                        'headerHtmlOptions'=>array('style'=>'text-align:center;'),
                        'value'=> '"<div style=\"width:90px;\">" . $data["bike_id"] . "</div>"',
                                      );