shorif2000
shorif2000

Reputation: 2654

jQuery too much recursion yii cgridview

I have 2 CGridView calling each other on beforeAjaxUpdate. How can I prevent the recursion? I only want it to call the other one once?

jobs-grid

'beforeAjaxUpdate' =>'function(id,options){     
    var x = getQueryParams(options.url);
    var data = "sort="+x.Jobs_sort + "&ajax=detailsgeoscan-grid";
    $.fn.yiiGridView.update("detailsgeoscan-grid",{data:"sort="+x.Jobs_sort});
}',

detailsgeoscan-grid

'beforeAjaxUpdate' =>'function(id,options){
    var x = getQueryParams(options.url);
    var data = "Jobs_sort="+x.Jobs_sort + "&ajax=jobs-grid";
    $.fn.yiiGridView.update("jobs-grid",{data:"sort="+x.Jobs_sort});
}',

Upvotes: 3

Views: 242

Answers (1)

Dinistro
Dinistro

Reputation: 5730

I think you can do this with an optional parameter isNotFirst:

jobs-grid

'beforeAjaxUpdate' =>'function(id,options,isNotFirst){     
    var x = getQueryParams(options.url);
    var data = "sort="+x.Jobs_sort + "&ajax=detailsgeoscan-grid";
    if(typeof isNotFirst === "undefined"){
        $.fn.yiiGridView.update("detailsgeoscan-grid",{data:"sort="+x.Jobs_sort}, true);
    }
}'

detailsgeoscan-grid

'beforeAjaxUpdate' =>'function(id,options,isNotFirst){
    var x = getQueryParams(options.url);
    var data = "Jobs_sort="+x.Jobs_sort + "&ajax=jobs-grid";
    if(typeof isNotFirst === "undefined"){
        $.fn.yiiGridView.update("jobs-grid",{data:"sort="+x.Jobs_sort},true);
    }
}',

If isNotFirst is undefined, the function is called by yii, so you can call the function of the other grid with isNotFirst set to true.

Upvotes: 0

Related Questions