私の JqGrid はコントローラーからデータをロードしますが、リスト ページャーは表示されません。
この場合、LINQ のクエリは 15 行を返しますが、10 行しか表示されず、2 ページ目に移動して最後の 5 行を表示することはできません。
私は何を間違っていますか?? 誰か助けてくれませんか?
意見
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery("#list2").jqGrid({
url: '@(Url.Action("GetMet", "Meta"))',
datatype: "json",
data: "a",
colNames: ['Id', 'Nome da Loja', 'Mês', 'Ano', 'Meta Monetária', 'Meta Seguro', 'Meta Ticket Médio'],
colModel: [{ name: 'id', index: 'id', width: 20 },
{ name: 'nome', index: 'nome', width: 120, search: true, stype: 'text' },
{ name: 'mes', index: 'mes', width: 40 },
{ name: 'ano', index: 'ano', width: 40 },
{ name: 'metamonetaria', index: 'metamonetaria', width: 90 },
{ name: 'metaseguro', index: 'metaseguro', width: 90 },
{ name: 'metaticketmedio', index: 'metaticketmedio', width: 110 }],
rowNum: 10,
rowList: [10, 20, 30],
pager: '#pager2',
sortname: 'nome',
viewrecords: true,
sortorder: "desc",
caption: 'Metas referente a loja selecionada',
height: 240,
ondblClickRow: function (id) { $("#FUNCIONARIO").val(id); }
});
jQuery("#list2").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: false });
コントローラ
public JsonResult GetMet(int page = 1, int rows = 10, string sord = "asc", string sidx = "Id")
{
var db = new DataContext().GetGenericRepository();
var totalFunc = db.GetAll<Funcionarios>().Count();
decimal totalPages = 0;
if (totalFunc > 0)
{
totalPages = totalFunc / rows;
totalPages = System.Math.Round(totalPages);
}
else
{
totalPages = 0;
}
if (page > totalPages)
{
page = Convert.ToInt32(totalPages);
}
var result = new
{
total = totalPages,
page = page,
records = totalFunc,
rows = (from metas in db.GetAll<Metas>()
select new
{
id = metas.METAID,
metamonetaria = metas.METAMONETARIA,
metaseguro = metas.METASEGURO,
metaticketmedio = metas.METATICKETMEDIO,
mes = metas.MES,
ano = metas.ANO,
nome = (from lojas in db.GetAll<Lojas>()
where lojas.LOJAID == metas.LOJAID
select lojas.NOME).First()
}).ToArray()
};
return Json(result, JsonRequestBehavior.AllowGet);