2010-06-25 1 views
2

동시에 페이지에 둘 이상의 jqGrid가있는 경우 하위 요소 ID가 충돌 할 수 있습니다. 3 ~ 4 개의 동일한 그리드를 서로 위에 겹쳐 놓고 동일한 데이터를 다른 연도에 표시하고자 할 수 있습니다.jqGrid : 페이지에 하나 이상의 모눈이 나타날 때 하위 요소 ID가 충돌 할 수 있습니다.이를 방지하기위한 설정이 있습니까?

하위 요소 ID 앞에 table-id가 있어야합니다. 이 작업을 수행하는 "fully-qualified | verbose ids"설정이 있습니까?

감사합니다.

+0

안녕하세요 Tim! 나는 미래에 문제를 제거하는 http://www.trirand.com/blog/?page_id=393/feature-request/prefixes-to-rowids/ 제안에 게시했습니다. 오늘 Tony는 이것이 jqGrid의 3.8 버전에서 구현 될 것이라는 데 동의합니다. jqGrid 버전 3.8의 새로운 기능 목록은 http://www.trirand.com/blog/?page_id=393/releases/jqgrid-3-8-beta/도 참조하십시오. – Oleg

+0

올렉,이 문제에 관심을 가져 주셔서 감사합니다! – Tim

답변

0

먼저 질문에 대한 흥미로운 질문을 찾으십시오. 당신이 발견 한 것은 정말로 어려운 진단 일 수있는 커다란 문제 일 수 있습니다. 따라서 추천 요청에 해당 제안을 http://www.trirand.com/blog/?page_id=393/feature-request/에 두는 것이 좋습니다.

이제 해결 방법에 대해 알아보십시오. 가장 쉬운 방법은 서버 측에서 서로 다른 그리드에 대해 고유 한 ID를 생성하는 것입니다. 그러나 그것은 항상 가능한 원인은 아닙니다. jqGrid에서 JSON/XML 응답을 생성하는 서버 코드의 추가 매개 변수로 id_prefix을 추가 할 수 있습니다. 그런 다음 서버는 jqGrid로 다시 보내기 전에이 접두사를 모든 ID에 추가해야합니다. 이 해결 방법은 좋지 않지만 작동합니다.

내가 보는 다른 방법은 jsonReader (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#jsonreader_as_function 참조)에 대한 모든 jqGrids 행의 id를 변경하는 것입니다. jqGrid에 다음과 같은 매개 변수를 추가하면 다음과 같은 매개 변수가 추가됩니다.

jsonReader: { id: function(obj) { return "BlaBla" + obj.id; } } 

표의 모든 ID에 접두사 "BlaBla"가 표시됩니다. 페이지 에서 jqGrids를 사용하여 그리드에 데이터 만 표시하면 이것이 해결책이 될 수 있습니다. 이 해결 방법을 생성 할 수있는 새로운 문제를 잊지 말아야합니다. 마스터/세부 시나리오를 사용하는 경우 편집/삭제 등을 고려해야합니다. 그리드의 ID에는 이제 접두어가 붙습니다. 따라서 id를 사용하기 전에 또는 id를 서버에 보내기 전에 onclickSubmit, serializeRowData, serializeGridData 등과 같은 추가 코드를 포함시켜야합니다.

+0

제안에 감사드립니다, 올렉. 나는 현재 addRowData 메서드를 사용하고있다. ("# my-table"). jqGrid ('addRowData', i + 1, data [i]); 그래서 나는 외륜없이 개울을 일시적으로 돌고 있습니다. Trirand 블로그에서 기능 요청을하고 싶지만 WordPress의 "비밀번호 분실"메커니즘이 손상된 것으로 보입니다. 스팸 폴더도 확인했습니다. – Tim

+0

죄송합니다. 그러나 WordPress의 문제가 질문에 설명 된 문제와 Trirand 블로그의 기능 요청에 어떻게 연결되어 있는지 이해할 수 없습니다. trirand 블로그에 액세스하는 데 기술적 인 문제가있는 경우 명시 적으로 준수한 후에이 작업을 수행 할 수 있습니다. 어떻게하면 로컬 데이터 만 가지고 있으며 JSON과 XML 데이터 입력을 사용하지 않고'addRowData'를 사용하여 여러분의 의견을 이해할 수 있습니다. 따라서 클라이언트 측에서 ID를 정의 할 수 있습니다. 맞습니까? 'data' 매개 변수로 3.7.x 버전의 jqGrid를 사용해 보시겠습니까? 그렇다면'addRowData' 함수를 사용할 필요가 없습니다. ID 문제가 아직 존재합니까? – Oleg

관련 문제