Extjs 4 .NET 4 grid nem töltődik be

Extjs 4 .NET 4 grid nem töltődik be
2012-03-05T18:12:36+01:00
2012-03-05T19:11:09+01:00
2022-11-24T22:41:54+01:00
stY
Helló!

.NET 4-el kombinálom az ExtJs 4-et szórakozásból. Egy egyszerű problémán nem tudok túllendülni, méghozzá , hogy a JSON, amit betöltök egy webservice-tól, az nem jelenik meg a grid-ben, mi lehet a problem?

A kapott json adat:

{"d":"{"count":"2","adat":[{"FELHASZNALO":"felh1","JELSZO":"jelsz1","NEV":"pr1","DATUM":"2010.05.27. 5:57:46"},{"FELHASZNALO":"DEMO","JELSZO":"jelsz2","NEV":"pr2","DATUM":"2010.06.21. 10:20:02"}]}"}

Ebben, a formában jön meg a json, ebben sem vagyok biztos, hogy jók benne ezek a "-k, mert itt rendesen jelenik meg ,de a JSON-ban levédve jelennek meg \ jellel. Bár google chrome-ban néztem a Response-t és az írja így ki \-ekkel.

A kódom:

ExtjS:

<script type="text/javascript"> Ext.onReady(function () { Ext.define('User', { extend: 'Ext.data.Model', fields: ['FELHASZNALO', 'JELSZO', 'NEV', 'DATUM'] }); var tablaD = Ext.create('Ext.data.Store', { model: 'User', proxy: { type: 'ajax', headers: { 'content-type': 'application/json' }, url: 'ProbaService.asmx/probaAdat', reader: { type: 'json', root: 'd.adat', totalProperty: 'd.count' } }, autoLoad: true, listeners: { load: function (store, records, success) { //Ext.Msg.alert("TÖLT"); if (success) { Ext.Msg.alert("SIKER"+records.length); } } } }); tablaD.add({ "FELHASZNALO": "101", "JELSZO": "adding myself", "NAME": "Leber", "DATUM": "2011-11-30" }); var grid = Ext.create('Ext.grid.Panel', { store: tablaD, columns: [ { header: 'FELHASZNALO', width: 250, dataIndex: 'FELHASZNALO', sortable: true, hidden: false }, { header: 'JELSZO', id: 'leiras-col', width: 450, dataIndex: 'JELSZO', sortable: true }, { header: 'NEV', width: 150, dataIndex: 'NEV', sortable: true }, { header: 'DATUM', width: 150, dataIndex: 'DATUM', sortable: true } ], height: 210, width: 600, split: true, renderTo: Ext.getBody() }).show(); // tablaD.load({ params: { start: 0, limit: oldalszam} }); var adat_mask = new Ext.LoadMask(Ext.getBody(), { msg: 'Adatok betöltése...', store: tablaD }); var ablak = new Ext.Window({ title: 'Ez az ablak', layout: 'column', cls: 'formExt', width: 1020, height: 590, x: 20, y: 0, closeAction: 'hide', items: [grid] }); ablak.show(); }); </script>

WebService (.NET):

[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true, XmlSerializeString = false)] public string probaAdat(string _dc,int page,int start,int limit) { ProbaDataContext dc = new ProbaDataContext(); StringBuilder sBuilder = new StringBuilder(); string vissza = "{'count':'" + dc.FELHASZNALOKs.Count() + "','adat':["; var s = dc.FELHASZNALOKs.ToList(); for (int t = 0; t < s.Count(); t++) { vissza += "{FELHASZNALO:'" + s[t].FELHASZNALO + "',JELSZO:'" + s[t].JELSZO + "',NEV:'" + s[t].NEV + "',DATUM:'" + s[t].DATUM + "'},"; } vissza = rtrim(vissza) + "]}"; return vissza.Replace(''', '"'); }

A Ext.Msg.alert("SIKER"+records.length); mindig 0-t ír ki, tehát nem kapja meg a rekordokat.
Mutasd a teljes hozzászólást!
Ebben a formában a JSON biztosan hibás, jelenleg a d-hez egy string tartozik, nem pedig objektum.

Helyesen:
{"d":{....}}
Mutasd a teljes hozzászólást!

  • Ok, így már sikerült:


    [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true, XmlSerializeString = false)] public System.Collections.Generic.List<FELHASZNALOK> probaAdat(string _dc,int page,int start,int limit) { ProbaDataContext dc = new ProbaDataContext(); return dc.FELHASZNALOKs.ToList(); }
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd