jqxGrid с привязкой SQL и LargeJsonResult пуст
У меня проблема с получением jqxGrid для работы с моей привязкой данных SQL и большим jsonresult. Вот мой текущий код.
контроллер:
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 в сетке ничего не появится.
Если вам нужно больше моего кода, чтобы помочь, дайте мне знать.
Спасибо,
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}]
});
C#
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.