2011-12-27 2 views

답변

3

편집 및 삭제할 수있는 값은 'editurl'뿐입니다. 따라서 업데이트 만하면됩니다. 당신과 같이, setGridParam와 editurl에 대한 값을 변경할 수 있습니다

$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo'); 

당신이 현재 선택된 행의 내용을 기반으로 논리를 사용하여 해당 URL을 구축하려는 경우, 같은 것을 할 :

onSelectRow: function(id){ 
    var rowData = $("#jqGridTable").getRowData(id); 
    // example logic 
    if (rowData['col1'] == 'foo' && rowData['col2'] == 'bar') 
     $("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo/bar'); 
    else 
     $("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo'); 
} 
+1

일해야한다. 나는 그것이 ** 유일한 길 **이 아니라고 생각한다. – Oleg

+0

"나는 유일한 방법"이라고 말하면서 그렇게 말하지만, 그렇게 말한 것처럼 들린다. 내가 "당신이 단지 그것을 업데이트 할 필요가있을 것"이라고 말한 것은 그것이 성취의 독점 수단이 아니라 오히려 그렇게하는 가장 단순한 방법이라는 것입니다. –

+0

좋아요, 나는 당신의 말을 정확하게 반복하지는 않지만,'editurl'은 수정할 수있는 유일한 매개 변수가 아닙니다. [navGrid] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator#definition)의'prmEdit','prmAdd' 또는'prmDel' 매개 변수 안에'url' 속성을 사용한다면, 'editurl'은 무시됩니다. 그러나 나는 너무 형식적이되고 싶지 않습니다. 나는 그 전에 당신이 제안한 방식이 작동해야한다고 말했고, 당신은 질문에서 주요 문제로 보이는'getRowData'의 사용법에 대해 썼습니다. – Oleg

2

나는 Jake Feasel이 "을 작성했기 때문에 나의 대답을 쓰려고하기로 결정했다. 편집과 삭제를위한 하나의 가치가있다. 'editurl'"이 그의 대답에 포함되어있다. 나는 여러 가지 방법이 있으며 최상의 요구 사항은 다른 요구 사항에 달려 있다고 생각합니다. 일반적으로

가 서버에 전송되는 데이터는 트리 부분

  1. POST와 같은 HTTP 요청의 유형에서 구성,
  2. 까지 URL의 일부 PUT 또는 DELETE '을?' 문자
  3. '?'문자 다음의 URL 매개 변수 문자
  4. HTTP 요청의 본문있는 jqGrid는 HTTP의 본체에 (또는 콤마 multiselect: true 경우 식별자의 목록을 분리) 아이디에 대한 정보를 HTTP POST 요청을 사용 장소, 기본적

의뢰. HTTP 요청 유형을 변경하면 예를 들어 본문에서 URL로 서버에 보내는 정보의 위치를 ​​변경해야 할 수 있습니다. 사용의 경우 서버 측 RESTful 서비스는 삭제 조작에 HTTP DELETE를 사용해야하며이 경우에는 빈 본문이 있어야한다.

어떤 식 으로든 콜백 함수 (이벤트)를 사용하여 행 편집 또는 삭제에 대한 추가 정보를 얻을 수 있습니다. 콜백 함수의 내부에서 getRowData 또는 getCellmethods을 사용하여 삭제 또는 편집 행의 다른 셀에 대한 추가 정보를 얻을 수 있습니다. 때로는 정확하게 작동하지 않는 정확한 상황에 의존합니다. 편집하는 동안 <input>, <select> 또는 다른 컨트롤로 변경된 셀의 정보를 가져 오려고하면 인라인 편집의 셀 편집의 경우입니다. 이 경우 해결 방법으로 사용할 수있는 다른 트릭이 있습니다 (예 : here 참조).

한 가지 방법은 onSelectRow의 URL을 변경하는 것입니다. 하나는 마지막으로 선택된 행을 삭제하거나 편집하기 때문입니다. $("#jqGridTable") 대신 $(this) 만 사용합니다.

또 다른 방법은 을 onclickSubmit으로 변경하는 것입니다 (herehere 참조).

URL의 부분을 '?'까지 변경해야하는 경우에만 을 사용하는 것이 좋습니다. 문자.paramNama=paramValue&으로 나눈 URL에 매개 변수를 추가하기 만하면 editData 또는 delData 매개 변수를 대신 사용할 수 있습니다. 매개 변수에는 함수가 포함될 수 있습니다. here 또는 here을 참조하십시오.

본문을 변경해야 할 경우 serializeDelData 또는 serializeEditData을 사용할 수 있습니다.

그래서 다양한 방법이 있으며 가장 좋은 방법은 다른 요구 사항에 따라 다릅니다.

+0

필자는 보통 $ ('# jqGridTable')보다는 $ (this)를 사용 하겠지만 전체 컨텍스트가 없으면 더 혼란스러워 할 것이라고 생각했습니다. –

1

위의 오타가 있다고 생각합니다. 그것은 내가 당신과 동의

$("#jqGridTable").setGridParam({'editurl':'myNewUrl/foo/bar'}); 

하지

$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo/bar');