Чтение данных с сервера с помощью Sencha Touch - PullRequest
0 голосов
/ 27 октября 2011

У меня тест на сенсорном прикосновении, код следующий

test.js

Ext.setup({
   onReady: function() {        
        Ext.regModel('car', {
            fields: [                               
                {name: 'manufacture',type: 'string'},
                {name: 'model',   type: 'string'},
                {name: 'price',    type: 'decimal'}
            ]
        });
        var productsList = new Ext.DataView({
            store: new Ext.data.Store({
                model: 'car',
                proxy: {
                    type: 'ajax',
                    url : 'cars.json',
                    reader: {
                        type: 'json',
                        root: 'data'
                    }
                },
                autoLoad : true
            }),
            tpl: new Ext.XTemplate(
                '<tpl for=".">',
                    '<div class="item">',
                        '"{manufacture}"',
                        '"{model}"',
                        '"{price}"',
                    '</div>',
                '</tpl>'
            ),
            itemSelector: "div.item",
            fullscreen: true
        });
   }
});

код json (cars.json)

{ "данные": [{ "производство": "SSANYONG", "модель": "Actyon", "цена": 100000}, { "производство": "SUZUKI", "модель": "АЛЬТ", "цена": 80000}], "результаты": 3}

этот пример работает, но я прочитал данные с сервера, код из c # / aspx выглядит следующим образом

protected void Page_Load(object sender, EventArgs e)
{
    List<car> oList = new List<car>();

    car c = new car();
    c.manufacture = "SSANYONG";
    c.model = "ACTYON";
    c.price = 100000;

    car d = new car();
    d.manufacture = "SUZUKI";
    d.model = "ALTO";
    d.price = 80000;

    oList.Add(c);
    oList.Add(d);
    string sJSON;
    System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    sJSON = oSerializer.Serialize(oList);
    sJSON=string.Concat("{\"data\":", sJSON);
    sJSON=string.Concat(sJSON,",\"results\":3}");

    Response.ContentType = "application/json";
    Response.Write(sJSON);
}

класс автомобиля

public class car
{
    public string manufacture { get; set; }
    public string model { get; set; }
    public double price { get; set; }
}

когда я запускаю aspx, в localhost отображается тот же текст, что cars.json, я пытаюсь с другим кодом

меняет "application / json" на "application / x-json", "application / json" в "text / javascript", "тип прокси: ajax" для "scripttag", "тип прокси: ajax" для "отдыха"

не работает.

1 Ответ

0 голосов
/ 04 ноября 2011

Пример наконец работает! Просто нужно разместить aspx APPLICATION на сервере (не localhost и курс компетентного отдела), а также разместить приложение sencha touch на сервере, чтобы все работало

...