2013-12-18 2 views
0

문제는 데이터베이스에서 Jqgrid를 채울 수 없다는 것입니다. 데이터를 Json 형식으로 표시합니다.데이터베이스에서 Jquery Grid로 데이터를로드 할 수 없습니다.

보기 (ListarDistritos)

@model IEnumerable<Entidades.Base.ENDistrito> 

<script src="@Url.Content("~/Scripts/Base/modGrid.js")"></script> 
<script src="@Url.Content("~/Content/JqueryGrid/jquery-1.9.0.min.js")"></script> 
<link href="@Url.Content("~/Content/JqueryGrid/jquery-ui-1.9.2.custom.css")" rel="stylesheet" /> 
<script src="@Url.Content("~/Content/JqueryGrid/jquery.jqGrid.js")"></script> 
<link href="@Url.Content("~/Content/JqueryGrid/ui.jqgrid.css")" rel="stylesheet" /> 
<script src="@Url.Content("~/Content/JqueryGrid/grid.locale-en.js")"></script> 

<link href="@Url.Content("~/Content/estilo.css")" rel="stylesheet" /> 

<h2>@ViewBag.Message</h2> 
<table id="grid"> 
</table> 
<div id="pager"></div> 

ModGrid.JS

var lastsel; 
$(document).ready(function() { 
    $("#grid").jqGrid({ 
     url: '/MantDistritos/ListarDistritos', 
     datatype: "json", 
     mtype: 'GET', 
     colNames: ['Id', 'Descripcion'], 
     colModel: [ 
         { 
          name: 'IdDistrito', index: 'IdDistrito', sortable: false, align: 'left', width: '200', 
          editable: true, edittype: 'text' 
         }, 
         { 
          name: 'DescripcionDistrito', index: 'DescripcionDistrito', sortable: false, align: 'left', width: '200', 
          editable: true, edittype: 'text' 
         } 
     ], 
     jsonReader: { 
      repeatitems: false, 
      id: "0" 
     }, 
     pager: jQuery('#pager'), 
     sortname: 'DescripcionDistrito', 
     rowNum: 10, 
     rowList: [10, 20, 25], 
     sortorder: "", 
     height: 125, 
     viewrecords: true, 
     rownumbers: true, 
     caption: 'Distritos', 
     width: 750, 
     editurl: "/Home/PerformCRUDAction", 
     onCellSelect: function (rowid, iCol, aData) { 


      if (rowid && rowid !== lastsel) { 

       if (lastsel) 
        jQuery('#grid').jqGrid('restoreRow', lastsel); 
       jQuery('#grid').jqGrid('editRow', rowid, true); 
       lastsel = rowid; 
      } 
     } 
    }) 
    jQuery("#grid").jqGrid('navGrid', '#pager', { edit: false, add: true, del: true, search: false, refresh: true }, 
      { closeOnEscape: true, reloadAfterSubmit: true, closeAfterEdit: true, left: 400, top: 300 }, 
      { closeOnEscape: true, reloadAfterSubmit: true, closeAfterAdd: true, left: 450, top: 300, width: 520 }, 
      { closeOnEscape: true, reloadAfterSubmit: true, left: 450, top: 300 }); 

}); 

제어기 (MantDistritos),536,913 63,210 공용 클래스 MantDistritosController : 컨트롤러 { 공개 JsonResult ListarDistritos() { ViewBag.Message = Resources.Language.Title_Page_MTD_L; var distrito = new LNClientes(). DistritoListar(); return Json (distrito, JsonRequestBehavior.AllowGet); } } 내가 응용 프로그램을 실행하면

가 나에게이

[{"IdDistrito":1,"DescripcionDistrito":"MAGDALENA DEL MAR"},{"IdDistrito":2,"DescripcionDistrito":"JESUS MARIA"},{"IdDistrito":3,"DescripcionDistrito":"PUEBLO LIBRE"},{"IdDistrito":4,"DescripcionDistrito":"LIMA 36"},{"IdDistrito":5,"DescripcionDistrito":"BARRANCO"},{"IdDistrito":6,"DescripcionDistrito":"MIRAFLORES"},{"IdDistrito":7,"DescripcionDistrito":"SAN ISIDRO"},{"IdDistrito":8,"DescripcionDistrito":"SAN JUAN DE LURIGANCHO"},{"IdDistrito":9,"DescripcionDistrito":"SAN JUAN DE MIRAFLORES"},{"IdDistrito":10,"DescripcionDistrito":"LOS OLIVOS"},{"IdDistrito":11,"DescripcionDistrito":"COMAS"},{"IdDistrito":12,"DescripcionDistrito":"SURCO"}] 

을 표시하지만 나에게 JQuery와 격자 내부에 데이터를 표시하지 않았다. JsonResult 대신 ActionResult를 사용하면 데이터가없는 Jquery 그리드가 표시됩니다.

내 문제를 해결할 수있는 단서는 감사하겠습니다.

감사합니다.

답변

0

json 데이터가 양호한 것 같습니다. 나는 오류를 찾지 못한다. jsonReader에 오류가있는 것으로 보입니다. ID는 컬럼의 이름입니다. 이 URL을 더 잘 이해하는 데 도움이 될 수 있습니다

양식

jsonReader : { 
    root:"data", // Here your posted json data 
    page: "currpage", // shows current page 
    total: "totalpages", // total pages 
    records: "totalrecords" // total records 

}이어야한다. JsonReader wiki

그리고 당신은 페이지에 대해 귀찮게 할 해달라고 총 경우 수 단순히

jsonReader : { 
    root:"data", 
    page: function(obj) { return 1; }, // page as 1 
    total: function(obj) { return 1; }, // total as 1 
    records: function(obj) { return reponse.length;}, 

},

관련 문제