티스토리 뷰

 

jqgrid 리스트 조회 상태에서 cellsubmit : 'remote' 일때 ondbClickRow로 더블클릭시 셀 하나하나 바로 수정 가능하도록 구현하였다. 
그리고 나서 submit 전까지 afterEditCell, afterSubmitCell을 호출하게 이벤트를 걸어줬는데 자꾸 ajax 2번 호출하는것이었다..


다른 리스트 업데이트랑 동일한 코드인데 다른곳에서는 문제가 없는데 이부분에서만 계속 2번 호출하는 이상한 현상;;;;
진짜 별거 별거 다 바꿔봤는데도 다른게 없어서 한참 헤맸다. 토나올뻔

===> key값을 지정해주지 않아서 발생, key값 지정해주니까 해결됨

다른 리스트들과 다르게 이 리스트는 DB 데이터 1줄밖에 없고 그래서 PK값도 없고 쿼리 날릴때도 where절 안걸어서 날리는데 그래서.
그래서 어차피 PK라고 할 값이 없으니까 key:true 옵션을 안줬는데 이것때문에 ajax가 두번이 호출되고 있었다.

그런데 key 정의에 대한 설명을 보면 https://1004lucifer.blogspot.com/2019/04/jqgrid-colmodel-api.html 

이렇게 나와있긴 한데 key 옵션을 무조건 하나의 colModel에 넣어주어야 하나, 그런데 key값을 설정하지 않으면 리스트의 고유한 인덱스값이 서버에 id값으로 넘어간다. 그걸 넘겨도 되는게 아닌가 왜 뭐가 문제인건지? 그리고 boolean 타입인데 key:false로 해주면 또 같은 오류가 난다. 무조건 key:true 해줘야만 됨,, 이게모야

해결은 했는데 이유를 모르겠다... 아시는분...

 

++ 추가 
이거 참 이해할 수 없는 일이다... key값을 지정해줘서 ajax 두번 호출하는걸 해결했다고 생각했는데.
다른 화면에서는 seq를 가져오는데 화면에 보여주지는 않아서 hidden:true 를 주었는데 그럼 오류 안나고 잘 실행되지만...????
ajax 두번 호출된다;;;; 아니 왜 두번 호출하는건지 제발 알고싶어 ㅠ
일단 ajax 두번 호출되는거에 대한 해결법이 무조건 key 설정이 아니고 화면에 보이는 key 설정해줘야 하는 걸로 기억하자..

 

 

 

 

댓글