2015-12-08 87 views
2

我想使用模式彈出窗口更改ActionColumn(GridView :: widget)上的默認按鈕。這裏是我的代碼:自定義按鈕操作列,yii2

  ['class' => 'yii\grid\ActionColumn', 
      'contentOptions' => ['style' => 'width: 8.7%'], 
      'visible'=> Yii::$app->user->isGuest ? false : true, 
      'buttons'=>[ 
       'view'=>function ($url, $model) { 
        $t = 'index.php?r=site/view&id='.$model->id; 
        return Html::button('<span class="glyphicon glyphicon-eye-open"></span>', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs', 'id'=>'modalButtonView']); 
       }, 
       'update'=>function ($url, $model) { 
        $t = 'index.php?r=site/update&id='.$model->id; 
        return Html::button('<span class="glyphicon glyphicon-pencil"></span>', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs', 'id'=>'modalButtonView']); 
       }, 
      ], 
     ], 

只有第一個按鈕工作正常,另一個按鈕沒有。我應該改變什麼?我可以使用錨標籤來代替按鈕嗎? 這裏是我的js和ModalWidget:

$(function(){ 
$('#modalButtonView').click(function(){ 
    $('#modalView').modal('show').find('#modalContentView').load($(this).attr('value')); 

});}); 


     Modal::begin(['id'=>'modalView', 'size'=>'modal-md']); 
    echo "<div id='modalContentView'></div>"; 
    Modal::end(); 

回答

1

HTML中的基本規則。

ID必須唯一。

使用此代碼

['class' => 'yii\grid\ActionColumn', 
    'contentOptions' => ['style' => 'width: 8.7%'], 
    'visible'=> Yii::$app->user->isGuest ? false : true, 
    'buttons'=>[ 
     'view'=>function ($url, $model) { 
      $t = 'index.php?r=site/view&id='.$model->id; 
      return Html::button('<span class="glyphicon glyphicon-eye-open"></span>', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs custom_button']); 
     }, 
     'update'=>function ($url, $model) { 
      $t = 'index.php?r=site/update&id='.$model->id; 
      return Html::button('<span class="glyphicon glyphicon-pencil"></span>', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs custom_button']); 
     }, 
    ], 
], 

然後侑jQuery的

$(function(){ 
$('.custom_button').click(function(){ 
    $('#modalView').modal('show').find('#modalContentView').load($(this).attr('value')); 

});}); 

    Modal::begin(['id'=>'modalView', 'size'=>'modal-md']); 
echo "<div id='modalContentView'></div>"; 
Modal::end(); 
+0

它爲我工作,謝謝 –

+0

沒問題。我很高興爲您服務。 :D –

1

您正在使用的ID在你的按鈕的HTML選項... ID是HTML元素的獨特。

相反,你必須使用的modelButtonView類,並改變根據它的JS的ID ..

-2

這個例子是很容易理解我 有一個疑問

`['class' => 'yii\grid\ActionColumn', 
         'contentOptions' => ['style' => 'width: 8.7%'], 
         'visible'=> false, 
         'buttons'=>[ 
           'view'=>function ($url, $model) { 
            $t = 'index.php?r=site/view&id='.$model->id; 
            return Html::button('', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs custom_button']); 
           }, 
           'update'=>function ($url, $model) { 
            $t = 'index.php?r=site/update&id='.$model->id; 
            return Html::button('', ['value'=>Url::to($t), 'class' => 'btn btn-default btn-xs custom_button']); 
           }, 
           ], 
           ],` 
+0

參考[this](http://stackoverflow.com/help/how-to-ask) – Nikhil

0

如果你不希望使用Html :: button(使用jquery)。您可以使用Html :: a:

['class' => 'yii\grid\ActionColumn', 
      'contentOptions' => ['style' => 'width: 7%'], 
      'visible'=> Yii::$app->user->isGuest ? false : true, 
      'buttons'=>[ 
       'view'=>function ($url) { 
        return Html::a('', $url, ['class' => 'glyphicon glyphicon-eye-open btn btn-default btn-xs custom_button']); 
       }, 
       'update'=>function ($url) { 
        return Html::a('', $url, ['class' => 'glyphicon glyphicon-pencil btn btn-default btn-xs custom_button']); 
       }, 
      ], 
     ],