2010-04-21 2 views
4

사용자가 레코드를 선택할 jqGrid가 있습니다. 여러 페이지에서 많은 수의 레코드를 선택할 수 있습니다.페이징 중 jqGrid에서 선택된 행을 저장합니다.

사용자가 데이터를 통해 페이지를 열면 선택된 행이 지워진 것처럼 보입니다. 배열에서 선택된 행을 수동으로 추적하는 것은 개발자의 몫입니까? 나는 이것을 잘하고 있지만, 최선의 방법은 무엇인지 모르겠습니다. 어떤 레코드가 선택 될 때마다 배열을 접합하려고하는지 확신 할 수 없습니다. 실제로 레코드를 느리게 만들 수있는 것처럼 보입니다.

내 최종 목표는 jQueryUI 대화 상자를 닫을 때 모든 선택된 행을 저장하는 동안 서버에 게시 할 수 있도록하는 것입니다.

통찰력, 질문, 코멘트; 모두 감사하겠습니다!

참고 : 이것은 MVC 응용 프로그램

답변

1

예, 수동으로이 선택을 추적 할 수있는 개발자의 몫입니다 때문 aspnetmvc 태그를 추가했습니다. 배열을 사용할 필요는 없습니다. 원하는 데이터 구조를 사용할 수 있습니다.

+0

사용자가 선택을 취소했을 때 데이터를 제거하는 측면에서 어레이가 더 쉬울 수 있다고 생각했습니다. 나는 onSelectRow를 사용할 계획이었다. 그러나 나는 베테랑 JS 개발자는 아님을 인정할 것이다. – Dan

1

$.data() 컨테이너로 선택하면 각 행을로드합니다. 이렇게하면 그리드에서 멀리 떨어져서 저장할 수 있으며, 사용자가 선택을 완료하면 멋진 패키지 데이터 세트를 가지고 작업 할 수 있습니다.

+0

이것은 DOM 요소를 다룰 것으로 보인다. 정말로 필요한 것은 ID 목록입니다. 그런 다음 ID를 구문 분석하여 숨겨진 필드로 DOM/Form에 삽입합니다. 아직도 가치가있는 - 감사합니다! – Dan

1

나는 비슷한 요구 사항을 갖고 있으며이 게시물을 보았습니다. 나는 내 솔루션 공유하고자합니다 :

var selId; 
$("#grid").jqGrid({ 
    ... 
    onSelectRow: function(id){ 
     selId = id; 
    }, 
    gridComplete: function() { 
     $("#grid").setSelection(selId, true); 
    }, 
    ... 
}); 

이 단 하나의 선택을했다,하지만 쉽게 selId 배열함으로써 복수의 선택에 적용 할 수있다.

+0

쉬운 해결책으로, 셀 어레이를 배열로 사용할 때는주의해야합니다. 선택한 ID를 onSelectRow의 목록에 추가하고 for 루프 'for (var i = 0; i Weezle

관련 문제