日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GridView直接更新数据,kartik\grid\EditableColumn用法 [ 2.0 版本 ]

發布時間:2023/12/10 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GridView直接更新数据,kartik\grid\EditableColumn用法 [ 2.0 版本 ] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GridView直接更新數據,kartik\grid\EditableColumn用法?[ 2.0 版本 ]

視圖的_columns.php文件,這里用到的是crudajax生成的

<?php use yii\helpers\Url; use common\models\ProductCategory; return [ [ 'class' => 'kartik\grid\SerialColumn', 'width' => '30px', ], [ //'class' => '\kartik\grid\DataColumn', 'attribute' => 'name', 'class' => '\kartik\grid\EditableColumn', ], [ 'class' => '\kartik\grid\DataColumn', 'attribute' => 'category.name', ], [ 'class' => '\kartik\grid\EditableColumn', 'attribute' => 'price', ], 'created_at:datetime', [ 'class' => 'kartik\grid\ActionColumn', 'dropdown' => false, 'vAlign' => 'middle', 'urlCreator' => function ($action, $model, $key, $index) { return Url::to([$action, 'id' => $key]); }, 'header' => Yii::t('app', '操作'), 'viewOptions' => ['role' => 'modal-remote', 'title' => 'View', 'data-toggle' => 'tooltip'], 'updateOptions' => ['role' => 'modal-remote', 'title' => 'Update', 'data-toggle' => 'tooltip'], 'deleteOptions' => ['role' => 'modal-remote', 'title' => 'Delete', 'data-confirm' => false, 'data-method' => false,// for overide yii data api 'data-request-method' => 'post', 'data-toggle' => 'tooltip', 'data-confirm-title' => Yii::t('app', '操作確認'), 'data-confirm-message' => Yii::t('app', '你確定要刪除這個選項嗎?')], ], ];

在控制器index方法里加上一段

/*** Lists all Product models.* @return mixed */ public function actionIndex() { $searchModel = new ProductSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); if ($this->isAjax && Yii::$app->request->post('hasEditable')) { Yii::$app->response->format = Response::FORMAT_JSON; $model = Product::findOne($this->post['editableKey']); $out = ['output' => '', 'message' => '']; $this->post[$model->formName()] = $this->post[$model->formName()][$this->post['editableIndex']]; if ($model->load($this->post)) { // can save model or do something before saving model if($model->save()) { $output = ''; /*if (isset($this->post[$model->formName()]['price_cny'])) { $output = Yii::$app->formatter->asDecimal($model->price, 2); }*/ $out = ['output' => $output, 'message' => '']; }else{ $out['message'] = $model->getErrors(); } }else{ $out['message'] = $model->getErrors(); } return $out; } return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }

基中的$this->isAjax和$this->post,是我在基類定義好了的,同學們可以改為自己的

下面是效果圖 ---錯誤 (#8): 服務器內部錯誤。圖片弄不了

如果需要做權限控制之類的,修改提交地址不想直接放在index方法,可以自定義提交地址,加上editableOptions參數即可

[//'class' => '\kartik\grid\DataColumn','class' => '\kartik\grid\EditableColumn','attribute' => 'price', 'editableOptions'=> function ($model, $key, $index) { return [ //'size'=>'sm', 'formOptions' => [ 'method'=>'post', 'action' => ['editable'] ] ]; } ],

轉載于:https://www.cnblogs.com/llxpbbs/articles/9343529.html

總結

以上是生活随笔為你收集整理的GridView直接更新数据,kartik\grid\EditableColumn用法 [ 2.0 版本 ]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。