jqxGrid с привязкой SQL и LargeJsonResult пуст

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

Контроллер:

public LargeJsonResult GetCustomers()
    {
        var dbResult = db.CPTs.ToList();
        var customers = from customer in dbResult

                        select new
                        {
                            customer.CPT1,
                            customer.MOD,
                            customer.SDESC,
                            customer.FAGE,
                            customer.TAGE
                        };
        return new LargeJsonResult { Data = customers, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };
    }

Вид:

<script type="text/javascript">
    $(document).ready(function () {
        // prepare the data
        var source = {
            datatype: "json",
            datafields: [{ name: 'CPT1' }, { name: 'MOD' },
            { name: 'SDESC' }, { name: 'FAGE' }, { name: 'TAGE' }, ],
            url: 'dbCPT/GetCustomers'
        };
        $("#jqxgrid").jqxGrid({
            source: source,
            theme: 'classic',
            columns: [{ text: 'Company Name', datafield: 'CompanyName',
                width: 250
            }, { text: 'CPT Code', datafield: 'CPT1', width: 150 },
{ text: 'Short Description', datafield: 'SDESC', width: 180 },
{ text: 'FAGE', datafield: 'From Age', width: 200 },
{ text: 'TAGE', datafield: 'To Age', width: 120}]
        });
    });
</script>

<h2>Index</h2>
<div id="jqxgrid"></div>

Если я запускаю dbCPT/GetCustomers напрямую, я получаю выходной файл со всеми данными, которые я извлекаю, но при переходе на страницу dbCPT в сетке ничего не появляется.

Если вам нужно больше моего кода, чтобы помочь, дайте мне знать.

Спасибо,


person Todd Skelton    schedule 16.05.2012    source источник
comment
jqxGrid, вероятно, из jqwidgets и jqGrid являются разными продуктами. Итак, вы использовали неправильный тег для своего вопроса.   -  person Oleg    schedule 16.05.2012
comment
Я знаю, но qjxgrid и qjwidgets считались новыми тегами, и, поскольку я новичок на сайте, мне не разрешалось их использовать. Мои извинения, jqgrid был самым близким из них.   -  person Todd Skelton    schedule 16.05.2012


Ответы (1)


Я сделал эту работу. В приведенном ниже коде я использую jqxDataAdapter, но не думаю, что это необходимо.

JavaScript

var source = {
    datatype: "json",
    datafields: [{ name: 'CompanyName' }, { name: 'ContactName' },
    { name: 'ContactTitle' }, { name: 'Address' }, { name: 'City'} ],
    url: 'Customers/GetCustomers'
};
var dataAdapter = new $.jqx.dataAdapter(source);

$("#jqxgrid").jqxGrid({
    source: dataAdapter,
    theme: 'classic',
    columns: [{ text: 'Company Name', datafield: 'CompanyName', width: 250 },
                { text: 'Contact Name', datafield: 'ContactName', width: 150 },
                { text: 'Contact Title', datafield: 'ContactTitle', width: 180 },
                { text: 'Address', datafield: 'Address', width: 200 },
                { text: 'City', datafield: 'City', width: 120}]
});

С#

public LargeJsonResult GetCustomers2()
{
    var dbResult = db.Customers.ToList();
    var customers = from customer in dbResult
                    select new 
                    { 
                        customer.CompanyName, 
                        customer.ContactName, 
                        customer.ContactTitle, 
                        customer.Address, 
                        customer.City 
                    };
    return new LargeJsonResult { Data = customers, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };
} 

Убедитесь, что вы используете последнюю версию jqxGrid и правильную реализацию LargeJsonResult.

person Minko Gechev    schedule 17.05.2012
comment
Как мы можем сделать то же самое, если объект компьютера также содержит элемент в качестве пары ключ-значение? нужна небольшая помощь - person Jithesh Chandra; 07.11.2014