在 Yii2 GridView 页面更改时维护 Bootstrap 选项卡

Posted

技术标签:

【中文标题】在 Yii2 GridView 页面更改时维护 Bootstrap 选项卡【英文标题】:Maintain Bootstrap tab on Yii2 GridView page changing 【发布时间】:2016-03-19 07:01:59 【问题描述】:

我有一个包含 5 个引导选项卡的页面。当我在任何选项卡上更改寻呼机时,会移动到第一个选项卡。 如何激活用于更改寻呼机的选项卡。

整个页面获得 5 个数据提供者。一个个喜欢

$overallProvider = new ArrayDataProvider([
        'allModels' => $overallArray,
        'pagination' => [
            'pageSize' => 100,
            'pageParam' => 'overall-page',
            'params' => array_merge($_GET, ['#' => 'overall']),
        ],
        'sort' => [
            'attributes' => ['rep'],
            'defaultOrder' => ['rep' => SORT_DESC],
            'sortParam' => 'overall-sort',
        ],
    ]);

在视图文件中创建引导选项卡

<ul class="nav nav-tabs" id="myTabs">
    <li class="active"><a href="#overall" data-toggle="tab">Overall</a></li>
    <li><a href="#circuit" data-toggle="tab">Circuit</a></li>
    <li><a href="#sprint" data-toggle="tab">Sprint</a></li>
    <li><a href="#drift" data-toggle="tab">Drag</a></li>
    <li><a href="#drag" data-toggle="tab">Drift</a></li>
</ul>

每个 GridView 小部件看起来像

<?= GridView::widget([
            'dataProvider' => $overall,
            'layout' => "<div class='text-right'>summary</div>\nitems\n<div class='text-center'>pager</div>",
            'pager' => [
                'options'=>['class'=>'pagination pagination-sm'],
                'hideOnSinglePage'=>true,
                'lastPageLabel'=>'>>',
                'firstPageLabel'=>'<<',
            ],
            'columns' => [
                ['class' => 'yii\grid\SerialColumn'],
                'username',
                'rep:decimal',
                'wins:decimal',
                'loses:decimal',
                'disc:decimal',
                'avg_opp_rating:decimal',
                'avg_opp_rep:decimal'
            ],
        ]) ?>

【问题讨论】:

【参考方案1】:

试试这个:

$(document).ready(function()  
   $('a[data-toggle=\"tab\"]').on('show.bs.tab', function (e) 
      localStorage.setItem('lastTab', $(this).attr('href'));
   );
   var lastTab = localStorage.getItem('lastTab');
   if (lastTab) 
      $('[href=\"' + lastTab + '\"]').tab('show');
   
);

【讨论】:

谢谢。这对我来说很完美,希望对其他人有帮助。 @iTPEMOP。有用的话记得点赞。 我还不能。代表分数阻止。 @iTPEMOP。当有足够的代表时做。 惊人的惊人的惊人 - 3 小时寻找并找到了非常感谢

以上是关于在 Yii2 GridView 页面更改时维护 Bootstrap 选项卡的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 GridView Triger仅在点击时过滤

YII2 Gridview

如何在 Yii2 Gridview 中自定义默认数据确认对话框

Yii2 GridView - 将搜索过滤器更改为onchange事件而不是提交

在使用pjax重新加载gridview后,在gridview上的Yii2模态表单更新没有显示

在gridview页面更改后Jquery colorbox不起作用