Forum

May 22nd, 2014
A A A

Please consider registering
guest

Log In Register

Register | Lost password?
Advanced Search

— Forum Scope —

  

— Match —

   

— Forum Options —

    

Wildcard usage:
*  matches any number of characters    %  matches exactly one character

Minimum search word length is 4 characters - maximum search word length is 84 characters

Topic RSS
trigger.("reloadGrid") not working when grid called from ajax function
20/12/2011
20:00
RustedBucket
Member
Forum Posts: 8
Member Since:
24/09/2011
Offline

My grid code is below. Basically I call it from an ajax function in order to use the response to get row data in the result. Unfortunately this has broken the reload trigger when a cell is updated.

<div id="gridwrapper">
<table id="bwdetail" style="width:100%;"></table>
<div id="pager"></div>
</div>

<script src="/js/jqGrid/src/grid.celledit.js" type="text/javascript"> </script>

<script type="text/javascript">
var vendor_id = '<?php echo Zend_Controller_Front::getInstance()->getRequest()->getParam( "id", null ); ?>';

var myGrid = $('#bwdetail');
var ret;
var theight;

jQuery(document).ready(function(){f
    
    $.ajax({
        type: "POST",
        url:'/air/buyworksheet/detailgrid/id/'+vendor_id,
        datatype: "json",
        success: function (data, status) {
            var tdata = JSON.stringify(data);
            var trows = data.records;
            if(trows >= 15) {
                if (innerHeight>=600) var theight = 390; else var theight = 250;
            } else {
                var theight='auto';
            }

            renderGrid(trows, theight, tdata);
            resize_the_grid();
            jQuery("#bwdetail").jqGrid('navGrid', '#pager', {add:false, view:false, edit:false, del:false, search:true,refresh:true});
        }
    });

    function refreshGrid() {
        jQuery("#bwdetail").trigger("reloadGrid");
    }    
    
    function renderGrid(trows, theight, tdata) {

        jQuery("#bwdetail").jqGrid({
    
            datatype: "jsonstring",
            datastr: tdata,
               height:theight,
            colNames:['id','Item', 'UPC', 'Description', 'Sales Qty.', 'Need', 'Order Qty.', 'Min. Qty.', 'Purchase U/M', 'Ext. Cost'],
               colModel:[
                   {name:'id',index:'id', width:25, align:"center", sorttype:'int',hidden:true},
                   {name:'item_number',index:'item_number', width:20, align:"center", sorttype:'int'},
                   {name:'barcode',index:'barcode', width:25, align:"center",sorttype:'int'},
                   {name:'description',index:'description', width:75},
                   {name:'quantity',index:'quantity', width:15, align:"center"},
                   {name:'need',index:'need', width:15, align:"center",editable:true,classes:'activecell' },
                   {name:'order_qty',index:'order_qty', width:15, align:"center",editable:true,classes:'activecell' },
                   {name:'minimum_purchase_quantity',index:'minimum_purchase_quantity', width:15, align:"center"},
                   {name:'measurement_code',index:'measurement_code', width:20, align:"center"},
                   {name:'cost',index:'cost', width:15, align:"center",formatter: 'currency', formatoptions:{decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "$ "}},
               ],
               rowNum: trows,
               rownumbers: true,
               rownumWidth: 40,       
               pager: '#pager',
               altRows: true,
               altclass:'myAltRowClass',
               gridview: true,
            viewrecords: true,
            footerrow: true,
            userDataOnFooter: true,     
            sortorder: "asc",
            autowidth: true,
            shrinkToFit: true,
            cellEdit: true,
            cellsubmit: 'clientArray',
            afterSaveCell : function(rowid,name,val,iRow,iCol) {
                var ret = jQuery("#bwdetail").jqGrid('getRowData',rowid);

                if(name == 'need') { $.post("/air/buyworksheet/updategrid/id/"+ret.id+"/bc/"+ret.item_number+"/n/"+ret.need); refreshGrid();}
                if(name == 'order_qty') { $.post("/air/buyworksheet/updatequantity/id/"+ret.id+"/bc/"+ret.item_number+"/q/"+ret.order_qty); refreshGrid();}

                
            }                          
        });
    }

    function resize_the_grid() { $('#bwdetail').fluidGrid({base:'#gridwrapper', offset:-20}); }

    $(window).resize(resize_the_grid);
});

</script>

Now if I replace the refreshGrid function with this one:

    function refreshGrid() {

        $('#bwdetail').jqGrid('GridUnload');

        $.ajax({
            type: "POST",
            url:'/air/buyworksheet/detailgrid/id/'+vendor_id,
            datatype: "json",
            success: function (data, status, xhr) {
                var tdata = JSON.stringify(data);
                var trows = data.records;
                if(trows >= 15) {
                    if (innerHeight>=600) var theight = 390; else var theight = 250;
                } else {
                    var theight='auto';
                }
                                
                renderGrid(trows, theight, tdata);
                resize_the_grid();
                jQuery("#bwdetail").jqGrid('navGrid', '#pager', {add:false, view:false, edit:false, del:false, search:true,refresh:true});
            }
        });
        
}

This works but obviously is reloads the entire grid. Not necessarily a problem but you visibly see the grid unload then reload vs. before when the whole grid was loaded from one function you didn't notice any flicker at all.

Any ideas on how to correct this?

Forum Timezone: Europe/Sofia

Most Users Ever Online: 215

Currently Online:
59 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

OlegK: 1216

markw65: 179

kobruleht: 144

phicarre: 132

YamilBracho: 124

Renso: 118

Member Stats:

Guest Posters: 447

Members: 11238

Moderators: 2

Admins: 1

Forum Stats:

Groups: 1

Forums: 8

Topics: 10443

Posts: 30855

Newest Members: NoSalt, 80vele, George, Mallia, Sneha Mehta, Amit Prabhalkar

Moderators: tony (7571), Rumen[Trirand] (81)

Administrators: admin (61)

Comments are closed.
Privacy Policy   Terms and Conditions   Contact Information