【问题标题】:Checkbox column not Working in yii2 gridview with Modal复选框列在带有模态的 yii2 gridview 中不起作用
【发布时间】:2016-10-09 22:33:52
【问题描述】:

我有一个 gridview 。它显示了大学中可用的部门。 当我单击该行时,它会填充模态,并在 kartik gridview 中显示可用于所选部门的讲师。

我正在使用 kartik/grid/CheckboxColumn。

但是当我单击复选框并通过 javacript 获取选定的行时,它不会返回与记录关联的主键。 如果我在没有 modal 的情况下执行 gridview,那么它工作正常

           $this->registerJs("     
           $('#lect-logout').click(function() {
           var key = $('#w0-container').yiiGridView('getSelectedRows');
    alert(key);                                                                                                                                   
$.post(          
    '?r=lec-logout/logout',         
    {       
        id: $('#w0').yiiGridView('getSelectedRows'),
          },  
    function (data) {
        alert("ok");

    }   
);      

});
");

如何在模式中使用该复选框。即使我单击复选框中的全选选项。它不会选择所有行。

控制器代码

     public function actionIndex()
    {
            $searchModel = new CollegeSearch();
            $dataProvider =    $searchModel->search(Yii::$app->request->queryParams);
            return $this->render('index', [ 'searchModel' => $searchModel,  'dataProvider' => $dataProvider]);                                    
    }

   public function actionLecture()                                                                                                               
    {
            $model = new Accounts();
            if ($model->load(Yii::$app->request->post())) {
            return $this->redirect(['index']);
            }
            else{
            $searchModel = new LectureSearch();
            $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

            return $this->renderAjax('lecture', ['searchModel' => $searchModel,'dataProvider' => $dataProvider]);
            }
    }

查看代码

index.php

        <?= GridView::widget([
            'dataProvider' => $dataProvider,
            'rowOptions' => function($model, $key, $index, $grid) {
            return ['id' => $model['account_id'], 'onclick' => 'getrow(this.id)'];
    },
            'columns' => [
            'displayname',
            ],
            ]); ?>

   <?php Modal::begin([
'id' => 'show-agents-modal',
    'size' => 'modal-lg',
'header' => '<h4 class="modal-title">View</h4>',
   ]);
      Modal::end(); ?>

Lecture.php

       <div class="pull-right">
      <?= Html::Button('Logout',['class'=>'btn btn-primary','id'=>'lect- logout']); ?>
     </div>
   <br>
        <?= GridView::widget([
    'dataProvider' => $dataProvider,
      //        'filterModel' => $searchModel,
    'columns' => [

         'first_name,

        ['class' => 'kartik\grid\CheckboxColumn'],
    ],
]); ?>

【问题讨论】:

  • 输入你的gridview代码
  • 试试这个代码var keys = $('#grid').yiiGridView('getSelectedRows');
  • @GAMITG 它不工作。它显示数据未定义错误并找到我的代码。我用过的。
  • @GAMITG 我无法在单选中选择所有记录,在标题复选框中。
  • 使用yii\grid\CheckboxColumn 而不是kartik\grid\CheckboxColumn

标签: php gridview checkbox yii2


【解决方案1】:

如果你想使用yii\grid\CheckboxColumn,那么试试这个:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            [
                'class' => 'yii\grid\CheckboxColumn', 
                'checkboxOptions' => function($model, $key, $index, $column) {
                    return ['value' => $model->your_id];
                },
            ],
         .
         .
])?>

【讨论】:

  • 实际上我的问题是,当我在模式中显示 gridview 时,复选框列不起作用。
  • @Bhuvanesh。 Tty 这个idea,如果你不明白,请添加评论。
  • 那是为了查看和更新​​.. 我理解并且我已经这样做了。我的问题,我正在模态中显示 grdiview。不是查看表单或更新表单
  • @Bhuvanesh。我知道你不会得到它。你可以在模式中勾选复选框吗?
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多