선택한 행의 ID뿐만 아니라 다른 행의 열에 따라 동적으로 편집 & 삭제 URL을 설정해야합니다. "id"필드 만 노출 된 onclickSubmit을 살펴 보았습니다. 어떤 팁?jqGrid, 행 데이터를 기반으로 URL을 동적으로 편집/삭제합니다.
답변
편집 및 삭제할 수있는 값은 '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');
}
나는 Jake Feasel이 "을 작성했기 때문에 나의 대답을 쓰려고하기로 결정했다. 편집과 삭제를위한 하나의 가치가있다. 'editurl'"이 그의 대답에 포함되어있다. 나는 여러 가지 방법이 있으며 최상의 요구 사항은 다른 요구 사항에 달려 있다고 생각합니다. 일반적으로
가 서버에 전송되는 데이터는 트리 부분
- POST와 같은 HTTP 요청의 유형에서 구성,
- 까지 URL의 일부 PUT 또는 DELETE '을?' 문자
- '?'문자 다음의 URL 매개 변수 문자
- HTTP 요청의 본문있는 jqGrid는 HTTP의 본체에 (또는 콤마
multiselect: true
경우 식별자의 목록을 분리) 아이디에 대한 정보를 HTTP POST 요청을 사용 장소, 기본적
의뢰. HTTP 요청 유형을 변경하면 예를 들어 본문에서 URL로 서버에 보내는 정보의 위치를 변경해야 할 수 있습니다. 사용의 경우 서버 측 RESTful 서비스는 삭제 조작에 HTTP DELETE를 사용해야하며이 경우에는 빈 본문이 있어야한다.
어떤 식 으로든 콜백 함수 (이벤트)를 사용하여 행 편집 또는 삭제에 대한 추가 정보를 얻을 수 있습니다. 콜백 함수의 내부에서 getRowData
또는 getCell
methods을 사용하여 삭제 또는 편집 행의 다른 셀에 대한 추가 정보를 얻을 수 있습니다. 때로는 정확하게 작동하지 않는 정확한 상황에 의존합니다. 편집하는 동안 <input>
, <select>
또는 다른 컨트롤로 변경된 셀의 정보를 가져 오려고하면 인라인 편집의 셀 편집의 경우입니다. 이 경우 해결 방법으로 사용할 수있는 다른 트릭이 있습니다 (예 : here 참조).
한 가지 방법은 onSelectRow
의 URL을 변경하는 것입니다. 하나는 마지막으로 선택된 행을 삭제하거나 편집하기 때문입니다. $("#jqGridTable")
대신 $(this)
만 사용합니다.
또 다른 방법은 을 onclickSubmit
으로 변경하는 것입니다 (here 및 here 참조).
URL의 부분을 '?'까지 변경해야하는 경우에만 을 사용하는 것이 좋습니다. 문자.paramNama=paramValue
을 &
으로 나눈 URL에 매개 변수를 추가하기 만하면 editData 또는 delData 매개 변수를 대신 사용할 수 있습니다. 매개 변수에는 함수가 포함될 수 있습니다. here 또는 here을 참조하십시오.
본문을 변경해야 할 경우 serializeDelData
또는 serializeEditData
을 사용할 수 있습니다.
그래서 다양한 방법이 있으며 가장 좋은 방법은 다른 요구 사항에 따라 다릅니다.
필자는 보통 $ ('# jqGridTable')보다는 $ (this)를 사용 하겠지만 전체 컨텍스트가 없으면 더 혼란스러워 할 것이라고 생각했습니다. –
위의 오타가 있다고 생각합니다. 그것은 내가 당신과 동의
$("#jqGridTable").setGridParam({'editurl':'myNewUrl/foo/bar'});
하지
$("#jqGridTable").setGridParam('editurl', 'myNewUrl/foo/bar');
- 1. jqGrid - 동적으로 Json을 통해 행 추가
- 2. jqGrid - 데이터 값을 기반으로 행 필터링
- 3. 행 번호 필드 데이터를 기반으로
- 4. JqGrid sava 행 데이터를 DB에 그리드 클릭시
- 5. jqGrid 행 값을 변경하십시오.
- 6. 더블 클릭 jqgrid 행
- 7. 행 기반 데이터를 열 기반으로 액세스 ID
- 8. 두 테이블의 데이터를 기반으로 행 선택
- 9. SSRS 2008 - 행 번호를 기반으로 데이터를 얻으십시오.
- 10. 직렬 데이터를 기반으로 Tkinter 창을 동적으로 업데이트
- 11. 데이터를 기반으로 동적으로 jUnit 테스트를 생성하는 방법
- 12. jqgrid xml의 행 추가
- 13. jqgrid hide() 행 문제
- 14. 행 높이 높이기 jqgrid
- 15. jqgrid 고정 행 추가
- 16. jqGrid 끌기 행 이동
- 17. jqgrid 대체 행 배경
- 18. 있는 jqGrid 행 갱신
- 19. jqGrid : 고정 행
- 20. jqGrid 행 업데이트
- 21. onSelectRow의 jqGrid 행 객체
- 22. JqGrid 강조 행
- 23. 있는 jqGrid 필터 행
- 24. jqgrid - 그룹화를 동적으로 활성화
- 25. jqGrid RowNum을 동적으로 설정하십시오.
- 26. 행 데이터를 열로 동적으로 변환하는 mysql 쿼리
- 27. jqGrid - 다중 선택 행 및 행 선택
- 28. 사용자 입력을 기반으로 jqgrid 필터링
- 29. jqGrid 행 데이터를 뷰에서 컨트롤러로 제출 - 어떤 방법으로?
- 30. jqGrid : 탐색기에 행 추가를 사용하여 데이터베이스에 데이터를 삽입하는 방법은 무엇입니까?
일해야한다. 나는 그것이 ** 유일한 길 **이 아니라고 생각한다. – Oleg
"나는 유일한 방법"이라고 말하면서 그렇게 말하지만, 그렇게 말한 것처럼 들린다. 내가 "당신이 단지 그것을 업데이트 할 필요가있을 것"이라고 말한 것은 그것이 성취의 독점 수단이 아니라 오히려 그렇게하는 가장 단순한 방법이라는 것입니다. –
좋아요, 나는 당신의 말을 정확하게 반복하지는 않지만,'editurl'은 수정할 수있는 유일한 매개 변수가 아닙니다. [navGrid] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:navigator#definition)의'prmEdit','prmAdd' 또는'prmDel' 매개 변수 안에'url' 속성을 사용한다면, 'editurl'은 무시됩니다. 그러나 나는 너무 형식적이되고 싶지 않습니다. 나는 그 전에 당신이 제안한 방식이 작동해야한다고 말했고, 당신은 질문에서 주요 문제로 보이는'getRowData'의 사용법에 대해 썼습니다. – Oleg