2012-02-02 4 views
0

인라인 편집 모드에서 "저장"을 클릭하면 오류가 발생합니다. urljson로 설정되어 있기 때문에 그것은jqgrid - saveRow 예외가 발생하는 URL

var rowSave = function(id){  
    jQuery("#myjqgrid").jqGrid('saveRow',id,{ 
     "succesfunc": function(response) { 
      return true; 
     },         
     "url": myjqgrid.json 
     "mtype": "GET" 
    }); 
} 

인가?

기본적으로 그리드를 처음로드 할 때 JSON 응답을받습니다. 인라인 편집 모드에서 행을 편집 한 후 편집 된 데이터를 서버로 보내야합니다. 데이터가 서버에 저장되면 업데이트 된 JSON이 반환되고 그리드 행 데이터는 업데이트 된 JSON 응답으로 업데이트되어야합니다. 이 문서 페이지를 보면

답변

1

: saveRow에 대한

섹션은 말한다 :

URL이 : 정의 된 경우,이 매개 변수는에서 editurl 매개 변수를 대체합니다 options 배열. 'clientArray'로 설정하면 데이터는 서버에 게시되지 않고 그리드에만 저장됩니다 (나중에 수동 저장을 위해).

이하 비트 :

URL (또는 editurl)이이 방법은, 특정 로우로부터의 데이터가 포맷 이름 서버에 게시되어 호출 될 때, 'clientArray'인 경우를 제외 : value는 이름이 colModel의 이름이고 값이 새 값입니다.

그래서 여기에 데이터를 받아 들일 서버 URL을 제공해야 할 것 같습니다. 같은 페이지에있는 몇 가지 예에서 다음과 같은 내용을 볼 수 있습니다.

... 
editurl: "server.php", 
... 
+0

답장을 보내 주셔서 감사합니다. 나는 위키 문서를 읽었습니다. 이것은'rowSave()'에서'url'의 값이 서버 측 파일이어야 함을 의미합니까? 이 파일은 JSON을 다시 보냅니 까? jqgrid는 어떻게 업데이트 되나요? – techlead

+0

변경된 데이터를 수락 한 다음 서버 쪽 페이지의 URL이어야합니다. 그것을 데이타베이스 또는 이렇게에서 저장하십시오. 로컬로 모든 작업을 수행하려면'jQuery ("# grid_id") .jqGrid ('saveRow', "rowid", false, 'clientArray'); 변형을 사용할 수 있습니다 (즉,'url'은''clientArray''이어야합니다). 행이 저장되면 상태가 변경되지 않았으므로 서버에서 업데이트 할 필요가 없습니다. 어떤 종류의 업데이트가 발생할 것으로 예상됩니까? 어떤 이유로 그리드를 다시로드하고 싶다면'successfunc' 콜백을 사용할 수 있습니다. –

+0

데이터 업데이트. 그리드의 열에 '클라이언트 A'값이 있지만 클라이언트 B로 편집 된 경우. 나는'url'에 서버 사이드 페이지를 지정합니다. 이 서버 쪽 페이지는 변경된 데이터를 데이터베이스에 저장하고 새 JSON 응답을 내 보냅니다. jqgrid가 자동으로 JSON 응답에서 편집 된 데이터를 가져 옵니까? 이는 (1) 처음 jqgrid를로드하고 (2) 행을 저장하는 경우의 'url'값이 동일해야 함을 의미합니까? – techlead

관련 문제