我使用模态引导来查看GridView,当我使用过滤器并按下回车时,它不起作用,它按下提交/保存按钮对父窗口产生影响。为什么呢?
这是我的jquery函数
$(document).on('ready pjax:success', function() {
$('#BtnModalPriceList').click(function(e) {
e.preventDefault();
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
});
});
这是我父模式的模态引导程序
<?= Html::button('Price List', [
'value' => Url::to('../pricelist/list'),
'class' => 'btn btn-primary',
'id' => 'BtnModalPriceList'
]) ?>
<?php
Modal::begin([
'header' => 'Price List',
'id' => 'modal',
'size' => 'modal-md',
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>
在动作列表中,我的代码像往常一样
<?php
$gridColumns = [
['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => ['onclick' => 'js:selectItem(this.value, this.checked)']],
[
'attribute' => 'price',
'format' => ['decimal', 0],
],
'date',
[
'attribute' => 'agen_id',
'value' => 'agen.agen_name'
],
'remark_1:ntext',
'remark_2:ntext',
] ?>
<?php Pjax::begin(); ?>
<?=
GridView::widget([
'id' => 'kv-grid-pricelist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>
<?php Pjax::end(); ?>
我错过了什么?
答案 0 :(得分:2)
因为您通过ajax加载Pjax(听起来很有趣)。您需要为其分配一个ID。通过ajax加载的所有窗口小部件都需要具有用户定义的ID,因此Yii可以将它们与已加载的窗口小部件区分开来。
<?php
$gridColumns = [
['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => ['onclick' => 'js:selectItem(this.value, this.checked)']],
[
'attribute' => 'price',
'format' => ['decimal', 0],
],
'date',
[
'attribute' => 'agen_id',
'value' => 'agen.agen_name'
],
'remark_1:ntext',
'remark_2:ntext',
] ?>
<?php Pjax::begin([
//add some id here
'id' => 'your-custom-id'
]); ?>
<?=
GridView::widget([
'id' => 'kv-grid-pricelist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>
答案 1 :(得分:0)
最后我明白了。感谢facebook中Yii PHP框架社区的成员。
答案是
1.将模态放在活动表格之外。
2.通过提供<?php Pjax::begin(['id' => 'some-id']); ?>
答案 2 :(得分:0)
Pjax :: begin([''id'=>'stav_id','timeout'=>假]);
答案 3 :(得分:-1)