2012-11-16 7 views
0

스크립트 :jqgrid mvc json 형식?

jQuery("#grid_table").jqGrid({ 
     url: '@Url.Action("GetAll", "Widget")', 
     datatype: "json", 
     mtype: 'GET', 
     colNames: ['id', 'name'], 
     colModel: [ 
      { name: 'id', index: 'id', width: 55, sortable: true, editable: false, editoptions: { readonly: true, size: 10} }, 
      { name: 'name', index: 'name', width: 200, editable: true } 
     ], 
     jsonReader: { 
      root: "rows", 
      page: "page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      id: "id", 
      userdata: "userdata" 
     }, 
     rowNum: 10, 
     rowList: [10, 20, 30], 
     pager: jQuery('#gridpager'), 
     sortname: 'name', 
     viewrecords: true, 
     sortorder: "asc", 
     caption: "Wines" 
    }).navGrid('#gridpager'); 

컨트롤러 :

public ActionResult GetAll() 
    { 
     List<object> list = new List<object>(); 

     for (int i = 0; i < 20; i++) 
     { 
      var o = new 
      { 
       id = i.ToString(), 
       name = "name " + i.ToString() 
      }; 
      list.Add(o); 
     } 

     var result = new 
     { 
      page = "1", 
      total = "1", 
      records = "10", 
      rows = list.ToArray() 
     }; 

     string Jlist = Newtonsoft.Json.JsonConvert.SerializeObject(result); 

     return Json(Jlist, JsonRequestBehavior.AllowGet); 
    } 

JSON 출력 :

enter image description here

그리고 메시지 : 없음 레코드를 찾을 수 없습니다!

내 코드가 잘못되었습니다.

감사합니다.

답변

0

문제는이 라인입니다. 답변 감사합니다.

0

json 독자가 언급 한 것처럼 "userdata"는 json에 없습니다.

그래서 null 값이나 사용자 데이터 필드의 값을 전달하십시오.

string Jlist = Newtonsoft.Json.JsonConvert.SerializeObject(result); 

내가 serilization 라인을 제거하고 작동 :