2016-01-22 81 views
-1

我有一個GridView爲數據庫中的特定表。該表的狀態欄是0 or 1如何在gridview YII2高級模板中添加特定行的動作按鈕?

我想爲GridView中的狀態列爲0的行添加更新操作按鈕,以幫助管理員更新此行。

我試過了,但什麼是錯的:

[ 
     'attribute' => 'Status', 
     'format' => 'raw', 
     'value' => function (\backend\models\Document $model) { 
         if ($model->Status == 0) { 
           ['class' => 'yii\grid\ActionColumn', 
            'template' => '{Update}', 
           ]; 
          } 
         }, 
], 
+3

人們不只是坐下來爲你寫例子和教程;那是什麼正式的例子和教程。你需要展示你如何試圖解決問題,並詢問更明確的問題,否則你的「請爲我寫代碼」問題將被忽略。 – simbo1905

+2

實際上系統要求我查看網站上沒有任何身份的人的新帖子。所以我通過在網站上查看沒有任何身份的人的新問題來進行慈善工作而變得很好。我沒有投票回答這個問題,也沒有把它降低到不可接受的低質量。我還就如何改進答案提供了反饋意見。當然你可以無視我的建議;不要以爲我長大的話和幫助不好。我試圖傳遞我的經驗,並有所幫助。通過一切手段無視它。注意你的問題現在是「-2」,如果我不好,它會是「-3」。 – simbo1905

回答

0

最簡單的是爲建立從ActionColumn類擴展,只渲染你的狀態。

Class StatusActionColumn extends ActionColumn 
{ 
    public $testStatus = 0 

    protected function renderDataCellContent($model, $key, $index) 
    { 
     if ($model->Status == $this->testStatus) { 
     return parent::renderDataCellContent($model, $key, $index); 
     } 
    } 
} 

或者你直接在

[ 
    'class' => ActionColumn::className(), 
    'buttons' => [ 
     'update' => function ($url, $model, $key) { 
      if ($model->Status == 0) { 
       $options = [ 
       'title' => Yii::t('yii', 'Update'), 
       'aria-label' => Yii::t('yii', 'Update'), 
       'data-pjax' => '0', 
       ]; 
       return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, $options); 
      } 
     }, 
    ], 
], 

設置buttons參數添加的代碼,我會做的第一個方法,因爲在這條路上,你可以很容易地還添加了查看,更新或其它自定義按鈕。