2010-12-13 2 views
1

30000 행을 초과하여 표시되는 GridView가 있고 각 행에 대해 '플래그'(확인란)와 '이유'(텍스트 상자)를 편집 할 수 있어야합니다. 이 작업을 수행하는 2 가지 방법을 생각했습니다.거대한 데이터 세트의 GridView 명령

1 : 체크 박스가 선택 될 때마다 다시 게시되고 개별 행에 이유와 플래그를 저장합니다. 한 행만 편집하는 경우 빠르지 만 플래그가 필요할 때 지루해집니다. 페이지가 매번 다시 게시 될 필요가있을 때 여러 행에 대해 변경되어 거대한 그리드를 리 바인드합니다.

2 : 확인란에서 자동 다시 게시를 사용하지 않도록 설정하고 전역 '업데이트'버튼을 누르면 테이블을 업데이트하십시오. 이것은 빠른 점검/체크 해제를 허용하지만 상태를 확인하기 위해 각 행을 반복해야 할 것입니다 - 나는 얼마나 오래 this'd가 걸릴지 솔직히 알고 싶지 않습니다!

사용할 수있는 다른 방법이 있습니까? 아마 AJAX를 사용하지만, GridViewRow에 사용하기가 쉬운가요?

감사합니다.

+0

위 내용을 토대로, 페이징을 사용하지 않는 것처럼 보입니다. 어떤 이유? 페이징과 함께 LINQ와 같은 데이터 소스를 사용하는 경우 리 바인드는 페이지 크기와 동일한 양의 데이터를 끌어서 바인딩합니다. – Keith

+0

죄송합니다, 페이징을 사용하고 있습니다. 그러나 자동으로 GridView에서 페이징을 생성했습니다. – Chris

답변

0

처음으로 페이지를로드 할 때 CheckBox/TextBox 컨트롤을 표시하는 것처럼 들린다. 이 경우, 반드시 NOT AutoPostBack해야합니다. 이것을 일반 양식처럼 처리하고 ASP Repeater 컨트롤로 전환 한 다음 제출 된 값을 별도의 페이지에있는 양식에서 가져 와서 데이터베이스에 제출하십시오. 귀하의 질문에 아무 것도 귀하가 정상적인 양식 제출 모델을 깨고 사용자가이 페이지와 상호 작용하는 방식을 수용 할 필요가 있다고 생각하게합니다.

편집/업데이트/취소 버튼을 사용하지 않았기 때문에 기본 제공되는 GridView 명령을 사용하지 않는다고 생각됩니다. 솔직히이 페이지가 실제로 존재하지 않을 때 기존 ASP 컨트롤의 모델에 맞도록하려는 것 같습니다. 내가 너라면 (그리고 시간이 있었다면) ASP Repeater 컨트롤을 사용하여이 페이지를 다시 작성하고 jQuery를 사용하여 ASP.NET WebMethod에 대한 AJAX 호출을 통해 페이지를 전송할 수 있습니다. 이전 문장에는 전문 용어가 많이 있지만 일단 처음 사용하지 않으면 페이지 작성 방법이 단순 해집니다.

편집 : 귀하의 의견에 따르면 30,000 명이 비즈니스 결정 이었기 때문에 귀하가 그 문제에 대한 선택권이 있음을 나타내는 답변 부분을 삭제했습니다. 나는 너의 고통을 느낀다.

0

이렇게하려면 AJAX를 사용할 수 있습니다. 만약 내가 이런 식으로 뭔가를하고 있었다면 그게 아마도 당신이 원하는 방법 일 것입니다. 그것은 사용자에게 멋진 사용자 경험을 제공 할 것이고 결국에는 많은 처리를하는 것에 대해 걱정할 필요가 없을 것입니다.

30,000 개의 레코드가 있다면이 애플리케이션이 사용자에게 유용할까요? 나는 누군가가 30,000 개의 레코드를 살펴보고 그것으로부터 유용한 것을 얻지 않을지 의심 스럽다 ...

+0

30000 행을 표시하는 것은 다소 바보 스럽지만 현재는 30000 행이 표시되는 비즈니스 시스템 용입니다. 그것은 길 아래로가는 길을 가고, 앞으로는 100 이하로 내려 가고 그런 식으로 머물러 있습니다.하지만 저는 여전히 슬픈 듯이 GridView에서이 30000 행을 편집해야한다고 들었습니다. – Chris

관련 문제