2017-08-24 7 views
0

ブートストラップモーダルポップアップ(リモートコンテンツ)を使用してcgridviewをロードすると、ページングリンクをクリックするとポップアップを再度開いた後、複数のリクエストが発生するのを防ぐ方法があります。Yii 1 +ブートストラップモーダルポップアップの問題

私はcgridviewなどで動的IDを使用しようとしましたが、問題は解決されていないようです。助けてください。

答えて

1

幸いにも、ますます掘り出した後、私は解決策を得ました。基本的に問題は、メインページにグリッドがあり、そのページから別のグリッドとポップアップを開くボタンがあり、ポップアップを再度開いてページ設定をクリックするとポップアップが開かれた回数が要求されていたということです。例えば、ポップアップが5回開かれた場合、5回のリクエストが行われ、4回がブラウザによって中止されました。それを止めるために私は解決策の下で適用する。

ポップアップグリッドの動的グリッドIDを作成し、同じidをajaxリクエストに渡してグリッドIDを維持し、cgridviewが完全に機能するようにするだけです。お使いのコントローラで

if(!isset($_REQUEST['ajax'])) { 
      $this->gridId = 'timesheet-report-grids'.rand(1,15000); 
     } else if(isset($_REQUEST['ajax']) && $_REQUEST['ajax'] != '') { 
      $this->gridId = $_REQUEST['ajax']; 
     } else { 
      $this->gridId = 'timesheet-report-grids'; // Just to prevent error in any case 
     } 

を入れて、cgridviewウィジェットであなたのビューファイルで$this->gridIdを使用しています。

関連する問題