bootrstrap GridView

Привет ребята, кто знает как уменьшить поля GridView?

Пробовал через headerHtmlOptions, htmlOptions не помогает :( инпут всеравно большой , как можно повлиять на его размер?




'columns'=>array(

    array('name'=>'id', 'htmlOptions'=>array('style'=>'width: 50px')),



У меня в CGridView работает.

Так может в самом инпуте стоит фиксированный размер? Тогда именно его нужно уменьшать, а то он раздвинет столбец таблицы, как ты не фиксируй размер столбца.

PS: для кода используй тег code а не quote

В этом то и проблема, что я не нашел как ему задаьт размер! Конечно можно через сss или ниже js но это как то не красиво!

Покажи код, который выводит это input который ты не можешь ресайзнуть.

И скриншот не помешает, а то можешь иметь в виду и input фильтра…

Код в точности что сверху!

  • не помогает

нужно влиять именно на input Фильтра

Строка заголовков включена, так что мой код должен работать. Проверь через Opera dragonly или Firebug прописывается ли указанный стиль в заголовок столбца?

Да появляется, а фильтр меньше не стоновится, черт с ним

В общем пришлось сделать так: в style.css выставить всем input в датагрдиах width 90% ; тогда после указания через htmlOptions столбцу размера input сужается.

Не совсем понимаю проблему, у меня в общем виде это выглядит так:

      ...


'columns'       => array(

           array(


                'name'        => 'price',


                'header'      => 'price',


                'filter'      => FALSE,


                'value'       => '$data->price',

// подсчет суммы столбца по странице в футере

                'footer'      => $model->getTotal($model->search()),


                'htmlOptions' => array(


                    'style'     => 'width:50px'


                ),                  

Ну и спасибо умнице Mike за функцию в модели:

    /*


     * Функция подсчета суммы значений столбца, выводимого GridView, 


     * динамически формируемого данными DataProvider из таблицы 'good'


     * Автор  Mike, http://www.yiiframework.com


     */


    public static function getTotal($provider)


    {


            $total=0;


            foreach($provider->data as $good)


                $total+=$->price;


            return $total;


    }

У меня так все работает…

Всем привет! Недавно столкнулся со следующей проблемой. Имеется форма, на ней поля поиска и два грида к одной модели. Во втором гриде есть фильтрация в шапке. При использовании общего поиска все работает нормально, но стоит начать фильтрацию во втором гриде, как он пропадает.Все работает на ajax. Подскажите пожалуйста, бьюсь не первый день, всю голову сломал.

вот пример кода:

контроллер:


$model=new Passengers('accountantCost');

		$model->unsetAttributes();

		$passengers=new Passengers('dispatcherPassengers');

		$passengers->unsetAttributes();


		if(isset($_GET['Passengers'])) {

			$model->attributes=$_GET['Passengers'];

			$passengers->attributes=$_GET['Passengers'];




	   Yii::app()->getClientScript()->scriptMap = array(

		       	'jquery.js'						=> false,

		       	'jquery-1.10.2.js'				=> false,

		       	'jquery.min.js' 				=> false,

		      	'bootstrap.min.js'				=> false,

		      	'datepicker.js' 				=> false,

		      	'bootstrap-datepicker.css'		=> false,

		        'bootstrap-noconflict.js'		=> false,

		        'notify.min.js'					=> false,

		     	'bootstrap-datepicker.min.js'	=> false,

		        'jquery-ui.min.js' 				=> false,

		   	    'bootstrap-noconflict.js'		=> false,

		        'jquery.yiigridview.js'			=> false,

		       	'bootstrap-datepicker.ru.js'	=> false,

		       	);


				$template = $this->renderPartial("accountant_grid", array(

					"model"			=>	$model,

					'passengers'	=>	$passengers,

					'ticket_status'	=>  Yii::app()->db->createCommand()->select("*")->from("ticket_status")->where("id!=5")->queryAll()

					),true,false);


				Yii::app()->ajax->sendMessage("success", "Найден.", array(

					"template"			=> $template,

					),

					null

				);

		       	Yii::app()->end();

	       }

		}else{

			$this->render($view, array(

				'model'			=>	$model,

				'passengers'	=>	$passengers,

				'ticket_status'	=>  Yii::app()->db->createCommand()->select("*")->from("ticket_status")->where("id!=5")->queryAll()

				));

		}

Вьюха:


<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',

	array(

        'id'					  => 'sample-report',

        'type'          => 'horizontal',

        'htmlOptions'   => array('class'=>'row'),

        'method'        => 'GET',

	)

); 


$this->widget('bootstrap.widgets.TbButton', 

  array(

    'label'=>'Печать',

    'buttonType'=>'submit',

    'htmlOptions' => array(

      'formaction'=>$this->createUrl('Printaccountantdispatchers'), 

    )

    ));

  echo "<br>";

?>

 

<?php echo $form->datePickerRow($model, 'date', array(	

	'options'=>array(

    	'format'   => 'yyyy-mm-dd',

        'language' =>'ru',

        'autoclose'=>true,

        'weekStart'=>1,

        'keyBoardNavigation'=>true,

        'minViewMode'=>0, 

		'showAnim'=>'fold',

    	),

    'htmlOptions'=>array(

      	'class' => 'span2',

       	'id'	=> 'datepicker_1', 

    	),

	),

  array(

      'append' => '<i class="icon-calendar"></i>',

  )

);?>




<?php echo $form->textFieldRow($model,'uname',array('class'=>'span4','id'=>'uid'));


echo $form->datePickerRow($model, 'startDate', array(

	'options'=>array(

    	'format'   => 'yyyy-mm-dd',

        'language' =>'ru',

        'startView' =>0,

        'autoclose'=>true,

        'weekStart'=>1,

        'keyBoardNavigation'=>true,

        'minViewMode'=>0, 

        'showButtonPanel' => true,

		'showAnim'=>'fold',

    	),

    'htmlOptions'=>array(

      	'class' => 'span2',

       	'id'	=> 'datepicker_2', 

    	),

	),

  array(

      'append' => '<i class="icon-calendar"></i>',

  )

);?>


<?php echo $form->datePickerRow($model, 'endDate', array(	

	'options'=>array(

    	'format'   => 'yyyy-mm-dd',

        'language' =>'ru',

        'startView' =>0,

        'autoclose'=>true,

        'weekStart'=>1,

        'keyBoardNavigation'=>true,

        'minViewMode'=>0, 

        'showButtonPanel' => true,

		'showAnim'=>'fold',

    	),

    'htmlOptions'=>array(

      	'class' => 'span2',

       	'id'	=> 'datepicker_3', 

    	),

	),

  array(

      'append' => '<i class="icon-calendar"></i>',

  )

);?>




<div class="clear"></div>


<?php $this->widget('bootstrap.widgets.TbButton', array(

      'type'        =>  'submit',

      'buttonType'  =>  'ajaxButton',  

      'label'       =>  'Отправить',

      'htmlOptions' => array(

        'action'=>'submit_accountant',

        'onClick'  => '{ $(".preload_find").css("display", "inline-block"); }',

      ),

      'url'         =>  array($this->createUrl('accountant')/*,$this->createUrl('accountantcost')*/) ,

      'ajaxOptions' =>  array(

        'success'=>'function(data){ 

                        data = JSON.parse(data);

                        $(".preload_find").css("display", "none");

                        $("#grid_row").html(data.params.template);

                        console.log(data.params.template);

                    }',

        'update'    =>  '#grid_row',

        'type'      =>  'GET',

        'Ajaxurl'   =>  array($this->createUrl('accountant')/*,$this->createUrl('accountantcost')*/),

        'class'     =>  'btn',

        //'params'    =>  array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken),

        )

    ));?>




    <div class="preload_find" style="display: none;">

        <img src="/images/dispatcher/712.GIF" style="margin-top:-25px;">

    </div>




<div id="grid_row">


<?php $this->widget('bootstrap.widgets.TbGridView',

    array(

        'id'            =>  'accountant-grid',

        'ajaxUpdate'    =>  true,

        'dataProvider'  =>  $model->accountantcost(),

        'columns'       =>  array(                            

          array('name'=>'uname','header'=>'Диспетчер'),

          array('name'=>'name','header'=>'Тип трансфера'),

          array('name'=>'cost','header'=>'Сумма'),

          array('name'=>'comission','header'=>'Комиссия'),

          array('name'=>'baggage','header'=>'Багаж'),

          array('name'=>'child','header'=>'Детское'),

      )

));?>




<?php $this->widget('bootstrap.widgets.TbExtendedGridView',

          array(

              'id'            =>  'dispatcher_passengers_grid',

              'ajaxUpdate'    =>  true,

              'ajaxType'      => 'GET',

              'ajaxUrl'       => $this->createUrl('accountant'),

              //'ajaxUrl'       =>  $this->createUrl("passengers/accountant"),

              //'enablePagination' => true,

              'dataProvider'  =>  $passengers->dispatcherPassengers(),

              'filter'        =>  $passengers,

              'columns'       =>  array(                            

                array('name'=>'transfer_date','header'=>'Дата трансфера',

                      'filter' => $this->widget('bootstrap.widgets.TbDatePicker', 

                                               array(

                                              'model' => $passengers,

                                              'attribute' => 'transfer_date',

                                              'options'=>array(

                                                      'format'                => 'yyyy-mm-dd',

                                                      'language'              =>'ru',

                                                      'autoclose'             =>true,

                                                      'weekStart'             =>1,

                                                      'keyBoardNavigation'=>true,

                                                      'minViewMode'           =>0, 

                                                    'showButtonPanel'   => true,

                                                            'showAnim'=>'fold',

                                                  ),

                                           ), array(

                                                'append' => '<i class="icon-calendar"></i>',

                                           )),

                  ),

                array('name'=>'current_date','header'=>'Дата регистрации',

                      'filter'  => $this->widget('bootstrap.widgets.TbDatePicker', 

                                               array(

                                              'model' => $passengers,

                                              'attribute' => 'current_date',

                                              'options'=>array(

                                                      'format'                => 'yyyy-mm-dd',

                                                      'language'              =>'ru',

                                                      'autoclose'             =>true,

                                                      'weekStart'             =>1,

                                                      'keyBoardNavigation'=>true,

                                                      'minViewMode'           =>0, 

                                                    'showButtonPanel'   => true,

                                                            'showAnim'=>'fold',

                                                  ),

                                           ), array(

                                                'append' => '<i class="icon-calendar"></i>',

                                           )),

                  ),

                array('name'=>'uname','header'=>'Диспетчер',

                      'filter' => false,

                  ),

                array('name'=>'fio','header'=>'ФИО'),

                array('name'=>'ticket','header'=>'Билет'),

                array('name'=>'city_from','header'=>'Город отправления',

                      'filter' => CHtml::listData(Cities::model()->findAll(),'name','name'),

                  ),

                array('name'=>'city_to','header'=>'Город прибытия',

                      'filter' => CHtml::listData(Cities::model()->findAll(),'name','name'),

                  ),

                array('name'=>'tist','header'=>'Статус билета',

                      'filter' => CHtml::listData($ticket_status,'name','name'),

                  )

                    ),

            )

      );?>


</div>

<?php $this->endWidget();?>

Заранее всем спасибо!