Show/Hide 基于条件的网格视图操作列 - Yii2
Show/Hide Grid View Action Column Based On Condition - Yii2
我试图根据某些条件show/hide ActionColumn。
在我的系统中,定义了 2 个角色:Primary
& Secondary
。我想为 Role Secondary
隐藏 ActionColumn 并为 Role Primary
.
显示 ActionColumn
我从 $visible 获得了一个 visible
属性选项。其中,'visible'=> true
和 'visible'=> false
工作正常。
<?
[
'class' => 'yii\grid\ActionColumn',
'visible' => false,
.
.
.
]
但是,问题是:我想根据某些条件动态地将 visible
选项设置为 True
/ False
。
<?
[
'class' => 'yii\grid\ActionColumn',
'visible' => function ($data) {
if (Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])) {
return true;
}
if (Yii::$app->userinfo->hasRole([AR::ROLE_SECONDARY])) {
return false;
}
},
.
.
.
]
我也试过这个方法。但是,没有运气。任何 help/hint/suggestion 都是可观的。
我搜索了 Yii2 GridView hide column conditionally。
虽然没有什么可以阻止您在调用 gridview 之前设置变量,但您不能将可见设置为可调用对象。
虽然在这种情况下,可见性仅取决于他们是否具有主要角色,您可以使用:
'visible' => Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])
您可以使用条件语句隐藏网格视图中的特定复选框
Here is simple code which works for me
[
'class' => 'yii\grid\CheckboxColumn',
'checkboxOptions' => function($dataProvider) {
return ["value" => ($dataProvider['tiIsPaid'] == 0)?$dataProvider['iDriverEarningId']:'',"style"=>($dataProvider['tiIsPaid'] == 0)?'':'display:none'];},
]
这里我使用了简单的逻辑来隐藏特定列的复选框
- 将值设置为 null 或空白,以便在单击 select 所有复选框时无法 selected
- 使用显示 none 属性 的 css
隐藏复选框
希望这可以帮助您根据您的条件隐藏特定列。
我试图根据某些条件show/hide ActionColumn。
在我的系统中,定义了 2 个角色:Primary
& Secondary
。我想为 Role Secondary
隐藏 ActionColumn 并为 Role Primary
.
我从 $visible 获得了一个 visible
属性选项。其中,'visible'=> true
和 'visible'=> false
工作正常。
<?
[
'class' => 'yii\grid\ActionColumn',
'visible' => false,
.
.
.
]
但是,问题是:我想根据某些条件动态地将 visible
选项设置为 True
/ False
。
<?
[
'class' => 'yii\grid\ActionColumn',
'visible' => function ($data) {
if (Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])) {
return true;
}
if (Yii::$app->userinfo->hasRole([AR::ROLE_SECONDARY])) {
return false;
}
},
.
.
.
]
我也试过这个方法。但是,没有运气。任何 help/hint/suggestion 都是可观的。
我搜索了 Yii2 GridView hide column conditionally。
虽然没有什么可以阻止您在调用 gridview 之前设置变量,但您不能将可见设置为可调用对象。
虽然在这种情况下,可见性仅取决于他们是否具有主要角色,您可以使用:
'visible' => Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])
您可以使用条件语句隐藏网格视图中的特定复选框
Here is simple code which works for me
[
'class' => 'yii\grid\CheckboxColumn',
'checkboxOptions' => function($dataProvider) {
return ["value" => ($dataProvider['tiIsPaid'] == 0)?$dataProvider['iDriverEarningId']:'',"style"=>($dataProvider['tiIsPaid'] == 0)?'':'display:none'];},
]
这里我使用了简单的逻辑来隐藏特定列的复选框
- 将值设置为 null 或空白,以便在单击 select 所有复选框时无法 selected
- 使用显示 none 属性 的 css 隐藏复选框
希望这可以帮助您根据您的条件隐藏特定列。