2016-01-22 78 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参数添加的代码,我会做的第一个方法,因为在这条路上,你可以很容易地还添加了查看,更新或其它自定义按钮。

相关问题