EasyUI Forum
September 14, 2025, 03:08:55 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: How to update dagagrid rownumbers column when pager number change ?  (Read 6172 times)
citos
Newbie
*
Posts: 5


View Profile
« on: October 19, 2015, 02:27:08 AM »

In UI view, user will choose some filter condition and execute a search action.
I use a datagrid component to show the query result.
I use loadData metod to refresh table view. (because I add some status flag in ajax response excepting "total" and "rows")
When user click next/preous on datagrid pager, the datagrid data updated, but the rownumbers column is still for page No.1
How to update the rownumbers column  either ?

Here's my code snaphost:
datalist_obj=$("#"+tableId).datagrid({  
   pagination:true,
   rownumbers:true
});
datalist_obj.datagrid("getPager").pagination({
   pageSize: DEFAULT_PAGE_SIZE,
   pageList:[DEFAULT_PAGE_SIZE,100,200],
   onSelectPage:function(pageNumber, pageSize){       
      query_data_list(pageNumber, pageSize);      
   }          
});

$(document).ready(function() {
   query_data_list(1,DEFAULT_PAGE_SIZE);
});   

function query_data_list(pageNumber,pageSize){
   var ajaxData=new Object();
   ajaxData.pageNumber=pageNumber;
   ajaxData.pageSize=pageSize;   
   var tableId="data_list_table";
   
   $("#"+tableId).datagrid("loading");
      var myDataType="text";
      var ajax_url="controller.php";
      sendAjaxRequest(ajaxData,ajax_url,myDataType,
         function(JSONobj){//this is AJAX succeed callback function, JSONobj contains these fields: result, rows, total.
                 $("#"+tableId).datagrid("loaded");
       var code = JSONobj.result.code;
       var msg = JSONobj.result.msg;  
       if(code!="000"){
          $.messager.alert("Message",msg,"warning");
          return;
       }
       var total = JSONobj.total;
       if(total == 0){
          $.messager.alert("Search Result","No result found.","info");      
       }      
       $("#"+tableId).datagrid('loadData',JSONobj); //datagrid pager changed, but rownumbers column not updated.      
         }
      );      
}
« Last Edit: October 19, 2015, 02:36:09 AM by citos » Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: October 20, 2015, 12:09:22 AM »

The better way to customize the loading behavior is to override the 'loader' function. Please refer to the following code:
Code:
$('#dg').datagrid({
  loader: function(param,success,error){
    var target = this;
    var opts = $(target).datagrid('options');
    if (!opts.url) return false;
    $.ajax({
      type: opts.method,
      url: opts.url,
      data: param,
      dataType: 'json',
      success: function(data){
        if (data.code == '000'){
          success(data);
        } else {
          $(target).datagrid('loaded');
          $.messager.alert("Message",'msg',"warning");
        }
      },
      error: function(){
        error.apply(target, arguments);
      }
    });         
  }
})
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!