1

下面的代码用于获取网格中选定行的 Json 字符串。然而,这感觉相当笨拙,或者是 extjs 4 的方式?

var json = "[";
var selrows = g.getView().getSelectionModel().getSelection();
for (var r=0; r<selrows.length; r++) {
    var selrow = selrows[r];
    json += "{";
    for (var f=0; f<selrow.fields.length; f++) {
        var n = selrow.fields.items[f].name;
        var v = selrow.data[n];
        json += "'" + n + "' : '" + v + "',";
    }
    json += "},";
}  
json += "]";
alert(json);

在 Firebug 中,我看到了 selrow var 的类似 json 的表示,但我似乎无法在 javascript 中掌握它。

4

1 回答 1

1

尝试这个:

json = Ext.JSON.encode(g.getView().getSelectionModel().getSelection().map(function(e){ return e.data; }));

alert(json);
于 2012-06-11T19:55:13.747 回答