Yii2 中 ActiveForm 和 GridView 使用 Pjax
来源:互联网 发布:手机手写输入软件 编辑:程序博客网 时间:2024/06/06 03:12
应用场景:
使用 ActiveForm表单修改数据后,提交表单,然后自动更新 GridView数据,表单和列表在同一个页面
如果自定义非ActiveForm表单按钮事件,可用ajax + $.pjax.reload() 代替
一个如何在 Yii2 的 GridView 和 ActiveForm 扩展中使用 Pjax 的例子。
这个例子使用一个数据库表 "countries" 字段为 id, name。
控制器
public function actionIndex(){ $model = new Countries(); if ($model->load(Yii::$app->request->post()) && $model->save()) { $model = new Countries(); //reset model } $searchModel = new CountriesSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'model' => $model, ]);}
视图
index.php
<?php use yii\helpers\Html;use yii\grid\GridView;use yii\widgets\Pjax; /* @var $this yii\web\View *//* @var $searchModel app\models\CountriesSearch *//* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = Yii::t('app', 'Countries');$this->params['breadcrumbs'][] = $this->title;?><div class="countries-index"> <h1><?= Html::encode($this->title) ?></h1> <?php // echo $this->render('_search', ['model' => $searchModel]); ?> <p> <?= Html::a(Yii::t('app', 'Create {modelClass}', [ 'modelClass' => 'Countries',]), ['create'], ['class' => 'btn btn-success']) ?> </p> <!-- Render create form --> <?= $this->render('_form', [ 'model' => $model, ]) ?> <?php Pjax::begin(['id' => 'countries']) ?> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'name', ['class' => 'yii\grid\ActionColumn'], ], ]); ?><?php Pjax::end() ?></div>
_form.php
<?php use yii\helpers\Html;use yii\widgets\ActiveForm; /* @var $this yii\web\View *//* @var $model app\models\Countries *//* @var $form yii\widgets\ActiveForm */?> <?php $this->registerJs( '$("document").ready(function(){ $("#new_country").on("pjax:end", function() { $.pjax.reload({container:"#countries"}); //Reload GridView }); });');?> <div class="countries-form"> <?php yii\widgets\Pjax::begin(['id' => 'new_country']) ?><?php $form = ActiveForm::begin(['options' => ['data-pjax' => true ]]); ?> <?= $form->field($model, 'name')->textInput(['maxlength' => 200]) ?> <div class="form-group"> <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?><?php yii\widgets\Pjax::end() ?></div>
英文版:http://www.yiiframework.com/wiki/772/pjax-on-activeform-and-gridview-yii2/
0 0
- Yii2 中 ActiveForm 和 GridView 使用 Pjax
- Yii2 Pjax 使用
- yii2.0使用ActiveForm
- YII2.0使用ActiveForm表单
- yii2 Activeform
- Yii2 ActiveForm
- yii2中GridView使用进阶
- [yii2] -- [ActiveForm] -- ActiveForm的使用方法
- 在THinkPHP中使用pjax
- Yii2 中关于 ActiveForm 中checkboxList默认选中的问题
- yii2-pjax更新
- Yii2学习笔记(七):Pjax的使用
- YII2.0 Activeform
- YII2.0 Activeform
- YII2 activeform样式修改
- yii2常用ActiveForm表单
- Yii2 ActiveForm 简单应用
- yii2 gridview使用问题解决
- win32 遍历 文件夹中文件
- 【NOIP2014八校联考第2场第2试9.28】帮助Bsny(help)
- CF 484E Sign on Fence
- 记一次抗DDOS演练
- 算法竞赛入门经典 习题1-4 正弦和余弦 (sincos)
- Yii2 中 ActiveForm 和 GridView 使用 Pjax
- 事务控制
- oracle查询一个字符串所在表
- poj 2084 卡特兰数
- linux下编译和使用java文件
- 算法竞赛入门经典 习题1-5 距离(distance)
- 2016 小灶练习1 A题 (HDU1034)
- Maven 父子工程创建 in Eclipse
- oracle所有表相关查询