我需要在yii2的gridView创建的表的顶部附加一些新行。 gridview的数据由activeDataProvider提供。
<div class="col-sm-12" id="dataDiv">
<?php
echo GridView::widget([
'dataProvider' => $model['dataProvider'],
'columns' => [
'id',
'customer_name',
'customer_lastname',
'customer_mobile',
'created_at:date'
]
]);
?>
</div>
我可以通过ajax调用控制器方法获取新行,但我不知道如何通过ajax(jquery)将它们附加到表中。
任何想法都会受到高度赞赏!
答案 0 :(得分:1)
我知道这个答案来晚了,但是对于将来想要解决方案的其他人来说:
首先,给您的GridView一个ID,以便我们可以在html中使用它:
GridView::widget([
'id' => 'some-list',
...
]);
假设您直接从控制器获取新行作为响应,然后您要使用jQuery将列表追加到顶部:
$.post('your-saving-url', {someData:'you-want-to-save'}, function(response) {
// append the new row to the top of our table
$('#some-list').find('tbody').prepend(response);
});
几秒钟后刷新pjax以确保表结构正确并修复分页是很有意义的。