2013-05-03 15 views
6

yii önyükleme + eklendi TbButtonColumn + eklendi TbButtonGroup böyle bir sorunla karşı karşıya

:yii önyükleme + eklendi TbButtonColumn + eklendi TbButtonGroup

Tablo bootstrap dan (yii-yükselticiden) eklendi TbGridView ile oluşturulur. TbButtonColumn I sütununda "düzenle/sil" vb.

Ama Split etkisiyle yapmak istediğiniz bir düğme http://yii-booster.clevertech.biz/components.html#buttonDropdowns

$this->widget('bootstrap.widgets.TbGridView', array(
    'id'=>'customer-grid', 
    'type'=>'striped bordered condensed', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     'surname', 
     'name', 
     'middlename', 
     'dateOfBirth', 
     array(
      'class'=>'bootstrap.widgets.TbButtonColumn', 
      'template'=>'{add} {list} {update} {print_act}', 
      'buttons'=>array 
      (
       'add' => array 
       (
        'label'=>'Назначить прием', 
        'icon'=>'plus', 
        'url'=>'Yii::app()->createUrl("reception/create", array("id"=>$data->id))', 
        'options'=>array(
         'class'=>'btn btn-small', 
        ), 
       ), 
       'list' => array 
       (
        'label'=>'Список предоставленных услуг', 
        'icon'=>'list white', 
        'url'=>'Yii::app()->createUrl("patient/update", array("id"=>$data->id))', 
        'options'=>array(
         'class'=>'btn btn-small btn-info', 
        ), 
       ), 
       'update' => array 
       (
        'label'=>'Изменить данные Пациента', 
        'icon'=>'pencil white', 
        'url'=>'Yii::app()->createUrl("customer/update", array("id"=>$data->id))', 
        'options'=>array(
         'class'=>'btn btn-small btn-success', 
        ), 
       ), 
       'print_act' => array 
       (
        'label'=>'Печать акта выполненных работ', 
        'icon'=>'print', 
        'url'=>'Yii::app()->createUrl("customer/printAct", array("id"=>$data->id))', 
        'options'=>array(
         'class'=>'btn btn-small', 
        ), 
       ), 
      ), 
      'htmlOptions'=>array(
       'style'=>'width: 220px', 
      ), 
     ) 
    ), 
)); 
+0

Ekleme TbGridView ile çalışmadım, ancak TbGridView widget'ını genişletebileceğinizi düşünüyorum. Orijinal yazarın düğmeleri çizdiği yeri bulun, sonra özel düğme widget'ını başlatmak için bu işlevin üzerine yazabilirsiniz. Bu widget için giriş TbGridView seçeneklerinden verilmelidir. –

cevap

5

Bunu hep DROPDOWNS ben bir GRIDVIEW karmaşık eleman (özellikle bir widget) daha kolay hale getirmek için gerektiğinde Denetleyiciden bir işlev çağırırsanız.

'columns'=>array(
    'surname', 
    'name', 
    'middlename', 
    'dateOfBirth' 
    ... 
    array(
     'name'=>'fieldName', 
     //call the function 'renderButtons' from the current controller 
     'value'=>array($this,'renderButtons'), 
    ), 
) 

Ve sonra eylem şuna benzer olacaktır: Örneğin sizin gridview böyle tanımlanan sütunları olurdu. Bu, yalnızca Yii destekleyici örnek sayfasından Yii destekleyici örnek sayfadan (http://yii-booster.clevertech.biz/components.html#buttonDropdowns:

) düzenleme yapar. Düzenleme: Bu ayrıca, geri bildirim işlevi nedeniyle renderButtons() 2 parametre kabul eder: $ data ve $ row. Bir widget'ı dinamik olarak oluşturmak için gridview'ın veri sağlayıcısından veriye erişmek için $ data kullanabilirsiniz.

public function renderButtons($data, $row) { 
    $this->widget('bootstrap.widgets.TbButtonGroup', array(
     'size'=>'large', 
     'type'=>'inverse', // '', 'primary', 'info', 'success', 'warning', 'danger' or 'inverse' 
     'buttons'=>array(
     array('label'=>'Inverse', 'items'=>array(
      array('label'=>'Action', 'url'=>'#'), 
      array('label'=>'Another action', 'url'=>'#'), 
      array('label'=>'Something else', 'url'=>'#'), 
      '---', 
      array('label'=>'Separate link', 'url'=>'#'), 
     )), 
    ), 
    )); 
} 
+1

denedim ve işe yaradı. Teşekkür ederim. –

0

Başka bir sütun ekleyerek bunu yapardım. Hem TbColumnButton abd TbButtonGroup hem widget'lardır. Bir düğme grubu

... 
array(
    'class'=>'bootstrap.widgets.TbButtonColumn', 
), 
array(
    'class'=>'bootstrap.widgets.TbButtonGroup', 
    ... 
), 
İlgili konular