EasyUI Forum
May 17, 2024, 05:23:52 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: datagrid load xml data and the sort problem.  (Read 2680 times)
frankgao
Jr. Member
**
Posts: 53


View Profile Email
« on: October 08, 2018, 11:06:02 PM »

I use the xml data and the data remoteSort=false,
when click the title,the data is disappear.

Code:
            
loader: function (param, success, error) {
                var opts = $(this).datagrid('options');
                if (!opts.url) return false;
                $.ajax({
                    type: opts.method,
                    url: opts.url,
                    data: param,
                    dataType: 'xml',
                    success: function (data) {
                        success(data);
                    },
                    error: function () {
                        error.apply(this, arguments);
                    }
                });
            },
            loadFilter: function (xml) {
                var dgparam = $(xml).find("datagrid");
                var rows = [];
                $(xml).find('rows').each(function () {
                    var xmlcolumn = $(this);
                    var rowdata = {};
                    $(xmlcolumn).children().each(function () {
                        rowdata[$(this).context.nodeName] = xmlcolumn.find($(this).context.nodeName).text();
                    });
                    rows.push(rowdata);
                });
                return { total: $(dgparam).attr("total"), rows: rows };
            },
Logged
jarry
Administrator
Hero Member
*****
Posts: 2264


View Profile Email
« Reply #1 on: October 09, 2018, 12:27:33 AM »

Redefine the 'loadFilter' function as:
Code:
loadFilter: function (xml) {
    if ($.isPlainObject(xml)){
        return xml;
    }
    var dgparam = $(xml).find("datagrid");
    var rows = [];
    $(xml).find('rows').each(function () {
        var xmlcolumn = $(this);
        var rowdata = {};
        $(xmlcolumn).children().each(function () {
            rowdata[$(this).context.nodeName] = xmlcolumn.find($(this).context.nodeName).text();
        });
        rows.push(rowdata);
    });
    return { total: $(dgparam).attr("total"), rows: rows };
}
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!