2009-12-22 5 views
2

컨트롤러 동작에서 사용자 데이터를 어떻게 설정합니까? 내가하는 일은 그리드를 깨는거야. 나는 운이없는 간단한 시험을하고있다. 여기에 작동하지 않는 코드가 있습니다. 감사.JQGrid를 사용하는 MVC 응용 프로그램에서 - 컨트롤러 동작에서 사용자 데이터를 설정하는 방법

 var dataJson = new 
     { 

      total = 
      page = 1, 
      records = 10000, 
      userdata = "{test1:thefield}", 
      rows = (from e in equipment 
        select new 
        { 
         id = e.equip_id, 
         cell = new string[] { 
       e.type_desc, 
       e.make_descr, 
       e.model_descr, 
       e.equip_year, 
       e.work_loc, 
       e.insp_due_dt, 
       e.registered_by, 
       e.managed_by 
      } 
        }).ToArray() 
     }; 
     return Json(dataJson); 
+0

jqGrid에 익숙하지 않고 userdata가 궁금한 사람들은 http://stackoverflow.com/questions/3128837/json-and-jqgrid-what-is-userdata –

답변

2

나는 이것을 배열로 변환 할 필요가 없다고 생각합니다. 나는 jqGrid를 사용했으며 Json 함수가 객체를 직렬화하도록했습니다. 문제가 발생할 것이라는 확신은 없지만 적어도 불필요합니다.

또한 사용자 데이터는 문자열로 평가되므로 문자열로 평가됩니다. 익명의 개체로 보내보십시오. 예 :

userdata = new { test1 = "thefield" }, 

해당 값과 페이지 사이의 합계와 쉼표 값이 필요합니다. (나는 그것이 오타라고 추측하고있다. 나는 그것이 컴파일 될 것이라고 생각하지 않는다.)

EDIT : 또한 javascript에 "jsonReader : {repeatitems : false}"옵션을 추가하는 것이 좋습니다. 이렇게하면 "{id : ID, cell : [data_row_as_array]}"구문으로 변환하지 않고 컬렉션을 "행"필드에 보낼 수 있습니다. colModel에 "key = true"속성을 설정하여 어떤 필드가 ID인지 나타낼 수 있습니다. 그리드에 데이터를 전달하는 것이 훨씬 더 간단합니다.

+0

응답 해 주셔서 감사합니다. 이제 클라이언트에서이 값을 읽는 데 문제가 있습니다. 그건 아니야 - var uData = jQuery ('# equipgrid'). getGridParam ('userdata'); 경고 (uData.test1); – MikeD

+0

docs에 따르면, $ ("grid_id")를 사용하여 값을 얻을 수 있습니다. getGridParam ('userData'); (자본 "D"를 확인하십시오.) 이것은 jsonReader 객체의 "userdata"매개 변수와 완전히 일치하지 않지만 jqGrid 내의 많은 불일치를 발견했습니다. – Josh

+0

난 그냥 워드 프로세서를 통해 값을 얻을 수있는 것으로 나타났습니다 $ ("grid_id"). getUserData(); 또는 $ ("grid_id"). getUserDataItem (key); 아마도 그 값을 검색하는 더 직관적 인 방법 일 것입니다. – Josh