Here is the extended method that can re-create datagrid without sending request.
$.extend($.fn.datagrid.methods,{
recreate:function(jq){
return jq.each(function(){
var dg = $(this);
var opts = dg.datagrid('options');
var url = opts.url;
var pageNumber = opts.pageNumber;
opts.url = null;
var data = dg.datagrid('getData');
dg.datagrid();
dg.datagrid('loadData',data);
setTimeout(function(){
opts.url = url;
opts.pageNumber = pageNumber;
dg.datagrid('getPager').pagination('refresh',{pageNumber:pageNumber});
},0);
});
}
});
Calling $('#dg').datagrid('recreate') is same as $('#dg').datagrid() but does not re-request data from server.