2016-09-22 25 views
1

我已經使用模態引導來查看GridView,並且當我使用過濾器並按下回車鍵時,它不起作用,它會影響父窗口按下提交/保存按鈕。爲什麼?爲什麼在模態引導時GridView Filters不起作用?

這是我的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(); ?> 

模式引導我有什麼錯過了什麼?

回答

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,   
]); 
?> 
+0

也把你的模態放在窗體外面。 – Imaginaroom

+0

感謝您的幫助.... –

-1

地址:use yii\bootstrap\Modal;

你應該閱讀thisthis

+0

我已經這樣做模式可以顯示,但我不能過濾它。 –

0

最後我得到它的工作原理。感謝Facebook中Yii PHP框架社區的成員。 答案是 1.將模態置於活動窗體之外。 2.使用Pjax通過給ID如<?php Pjax::begin(['id' => 'some-id']); ?>

相關問題