ExtJs 4 и asp.net MVC 3 проблема загрузки данных. - PullRequest
1 голос
/ 11 июня 2011

У меня проблема с привязкой данных от контроллера к хранилищу.

На стороне JS у меня есть следующий код:

function buildGrid() {
    console.log("0");
    var store = new Ext.data.JsonStore(
    {
        url: '@Url.Content("~/Home/GridData")',
        root: 'data',
        totalProperty: 'total',
        fields: ['Id', 'Name', 'State', 'Age']
    });
    console.log("1");
    store.load({ params: { start: 0, limit: 15} });
    console.log("2");
}

Код контроллера выглядит так:

public JsonResult GridData(int start, int limit)
{
    var contact = new List<Contact> {
        new Contact(){ Name= "Smith", State = "NU",  Age =24},
        new Contact(){ Name= "Adam", State= "LU", Age =32},
        new Contact(){ Name = "Eve", State= "WA", Age=18},
        new Contact(){ Name= "Chun Li", State="LI", Age=34}
    };
    return Json(new { total = contact.Count, data = contact, }, JsonRequestBehavior.AllowGet);
}

Я вижу 0 и 1 на консоли FireBug, но вместо 2 я получаю сообщение об ошибке:

url is undefined
 return url + (url.indexOf('?') === -1 ? '?' : '&') + s; 

ext-all-debug.js (line 5040)

Я понятия не имею, что я делаю неправильно.

Заранее спасибо за любыепредложения.

Ответы [ 3 ]

0 голосов
/ 12 июня 2011

Может быть, вам стоит проверить Dextop .Это платформа приложений, полностью предназначенная для ускорения разработки приложений на основе Ext / .NET.

0 голосов
/ 18 июня 2011

вот прокси, который я определил в своем магазине

proxy: {
    type: 'ajax',
    batchActions: false,
    reader: {
        type: 'json',
        root: 'data'
    },
    api: {
        create: 'CreateOrder.json',
        read: 'ReadOrder.json',
        update: 'UpdateOrder.json',
        destroy: 'DestroyOrder.json'
    },
    listeners: {
        exception: function (proxy, response, operation) {
            Ext.Msg.show({
                title: response.statusText,
                msg: Ext.decode(response.responseText).message,
                buttons: Ext.Msg.OK,
                icon: Ext.window.MessageBox.ERROR
            });
        }
    }
}

Вы можете попробовать эту библиотеку, которая мне помогает extjs4efj

0 голосов
/ 12 июня 2011

Я не решил проблему, однако избавился от ошибки, создав модель.

Ext.define('Contact', {
    extend: 'Ext.data.Model',
    fields: ['Id', 'Name', 'State', 'Age']
});

var store = Ext.create('Ext.data.Store', {
    model: 'Contact',
    proxy: {
        type: 'ajax',
        url: 'GridData',
        reader: {
            type: 'json',
            record: 'data',
            totalProperty: 'total'
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...