激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Yii2 GridView實現列表頁直接修改數據的方法

Yii2 GridView實現列表頁直接修改數據的方法

2021-01-19 15:59白狼 PHP教程

這篇文章主要介紹了Yii2 GridView實現列表頁直接修改數據的方法的相關資料,小編認為非常具有參考價值,特此分享到腳本之家平臺,需要的朋友可以參考下

什么意思呢?我來簡單的描述下,小編妹子提的需求是這樣的,你看啊,你這列表頁的數據,能不能我就直接在列表上進行點一下就直接修改啊,我再點進去修改多麻煩,太不方便了。這尼瑪,這需求,是不是真想給她一棒槌。

ok,我們今天就來看看在yii2中如何去利用gridview實現列表上直接修改的功能,很全面哦,我們盡量各種類型的屬性都給出實例。

第一步,我們先來部署好yii2-grid

利用composer安裝yii2-grid

?
1
composer require kartik-v/yii2-grid "@dev"

如果你在安裝的過程中需要讓你輸出token,此時也就是需要你登錄你的github帳號,通過setting>personal access tokens獲取token值后輸入你的token值,回車就好。

安裝好了之后,我們對module進行如下配置,這個是必須要配置的

?
1
2
3
4
5
'modules' => [
'gridview' => [
'class' => '\kartik\grid\module'
]
];

前面我們說了,要先把yii2-grid部署好,下載配置好之后,我們打開視圖文件并參考下面的代碼修改你的文件

?
1
2
3
4
5
6
7
8
9
10
// use yii\grid\gridview;
//這里屏蔽掉yii的gridview,user我們剛剛安裝的gridview
use kartik\grid\gridview;
<?= gridview::widget([
//......
'export' => false,
'columns' => [
//......
],
?>

上面代碼中我們只需要添加一項 'export' => false, 即可,你原先的gridview無需改動。

然后我們安裝yii2-editable

?
1
composer require kartik-v/yii2-editable "@dev"

安裝好了后,我們在剛才配置好gridview的文件中引入editable

?
1
use kartik\editable\editable;

首先介紹下textinput類型的修改,圖如下

Yii2 GridView實現列表頁直接修改數據的方法

從上圖中可以很輕松的看到編輯的效果,直接貼代碼

?
1
2
3
4
[
'attribute' => 'title',
'class'=>'kartik\grid\editablecolumn',
],

但是從上圖中我們也看到了,彈窗式修改呢不是很方便,我們接下來看看方便點的操作方式

?
1
2
3
4
5
6
7
[
'attribute' => 'title',
'class'=>'kartik\grid\editablecolumn',
'editableoptions'=>[
'aspopover' => false,
],
],

只需要對要修改的屬性值點擊一下可以直接進行修改,我們來看看這樣會有什么問題

Yii2 GridView實現列表頁直接修改數據的方法

也許你發現了,編輯框的寬度太小了,操作不是很方便,我們把input改為textarea會不會好點?試試看,當然你也可以給當前單元格指定headeroptions設定寬度,關于

Yii2 GridView實現列表頁直接修改數據的方法

看圖片上果然效果好很多,直接貼代碼

?
1
2
3
4
5
6
7
8
9
10
11
[
'attribute' => 'title',
'class'=>'kartik\grid\editablecolumn',
'editableoptions'=>[
'aspopover' => false,
'inputtype'=>\kartik\editable\editable::input_textarea,
'options' => [
'rows' => 4,
],
],
],

有同學很好奇的點了圖中的兩個按鈕,一個是重置按鈕,另一個是應用按鈕,重置還好,很容易理解,但是嘛,為啥點了應用按鈕就貌似一直在處理中的意思呢?別急別急,從一開始到現在乃至接下來,我們都將先講解view中的配置,其實這里你點擊應用按鈕后也就異步請求了后端,我們后面詳細的說道。

如果你的column是數字類型的呢?簡單嘛,input內直接修改就好了,可如果你想要下面截圖中的效果,需要你繼續繼續利用composer安裝touch spin widget

Yii2 GridView實現列表頁直接修改數據的方法

?
1
require kartik-v/yii2-widget-touchspin "@dev"

安裝完畢后,我們看看數字類型的屬性的修改方式

第三種,關于下拉框式的修改,我們假定字段is_delete值1顯示 2刪除且數據庫存的值是1 2這種數字類型,看效果圖然后我們再貼代碼

Yii2 GridView實現列表頁直接修改數據的方法

左右兩邊是兩個屬性,為了做對比說明,左側是不可修改的屬性展示,代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
[
'attribute' => 'is_delete',
'class'=>'kartik\grid\editablecolumn',
'editableoptions'=>[
'inputtype'=>\kartik\editable\editable::input_dropdown_list,
'aspopover' => false,
'data' => article::itemalias('is_delete'),
],
'value' => function ($model) {
return article::itemalias('is_delete', $model->is_delete);
},
'filter' => article::itemalias('is_delete'),
],

第四個,我們講解下日期組件和時間組件,先截圖看效果,然后在安裝

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//日期組件
composer require kartik-v/yii2-widget-datepicker "@dev"
//時間組件
composer require kartik-v/yii2-widget-datetimepicker "*"
//日期組件
[
'attribute' => 'created_at',
//這個設定表格的寬度
// 'headeroptions' => ['width' => '150px'],
'class'=>'kartik\grid\editablecolumn',
'editableoptions'=>[
'inputtype'=>\kartik\editable\editable::input_date,
'aspopover' => false,
//這個設定我們組件的寬度
'contentoptions' => ['style'=>'width:180px'],
'options' => [
'pluginoptions' => [
//設定我們日期組件的格式
'format' => 'yyyy-mm-dd',
]
],
],
'format' => ['date', 'y-m-d'],
],
//時間組件
[
'attribute' => 'updated_at',
// 'headeroptions' => ['width' => '150px'],
'class'=>'kartik\grid\editablecolumn',
'editableoptions'=>[
'inputtype'=>\kartik\editable\editable::input_datetime,
'aspopover' => false,
'contentoptions' => ['style'=>'width:250px'],
],
],

基本上就這4中類型吧,view配置好了,我們就需要配置controller層進行異步操作了,我們來看看是怎么操作的。

聲明:如果你的gridview是在視圖article/index內,那么接下來的操作你需要在article控制器的index內操作。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use yii\helpers\json;
public function actionindex()
{
$searchmodel = new articlesearch();
$dataprovider = $searchmodel->search(yii::$app->request->queryparams);
if (yii::$app->request->post('haseditable')) {
$id = yii::$app->request->post('editablekey');
$model = article::findone(['id' => $id]);
$out = json::encode(['output'=>'', 'message'=>'']);
$posted = current($_post['article']);
$post = ['article' => $posted];
if ($model->load($post)) {
$model->save();
$output = '';
isset($posted['title']) && $output = $model->title;
// 其他的這里就忽略了,大致可參考這個title
}
$out = json::encode(['output'=>$output, 'message'=>'']);
echo $out;
return;
}
return $this->render('index', [
'searchmodel' => $searchmodel,
'dataprovider' => $dataprovider,
]);
}

關于小編給大家介紹的yii2 gridview實現列表頁直接修改數據的方法就給大家介紹到這里,希望對大家有所幫助,如果大家想了解更多內容敬請關注服務器之家網站。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 极品一级片 | 国产午夜精品一区二区三区四区 | 国产成人精品区一区二区不卡 | 在线中文字幕网站 | 日日噜噜噜噜久久久精品毛片 | 久久久久久久一区二区三区 | 中文字幕11 | 国产一区二区三区高清 | 国产69精品久久久久9999不卡免费 | 亚洲一区二区观看播放 | 久久人添人人爽人人爽人人片av | 欧美一级视频免费看 | 蜜桃av网 | 99re色| 色播视频在线播放 | 97zyz成人免费视频 | 欧美一级黄 | 99热高清| 久久免费视频一区二区三区 | 国产精品亚洲一区二区三区在线观看 | 97风流梦电影 | 国产午夜亚洲精品午夜鲁丝片 | 有兽焉免费动画 | 久久久久久久免费精品 | 成人福利在线免费观看 | 美国一级黄色毛片 | 亚洲成人精品视频 | 中文字幕伦乱 | 欧美黄色免费视频 | 久久久青青草 | 成年免费在线视频 | 毛片视频在线免费观看 | 欧美xxxwww | 91久久国产 | 国产一级一片免费播放 | av在线播放免费观看 | 激情综合在线 | 成人免费毛片片v | 色999久久久精品人人澡69 | 1024亚洲天堂 | 特片网久久 |