2010-06-03 5 views
1

테이블 (gridview)이 포함 된 asp.net 2.0 웹 페이지에 대한 야심 찬 요구 사항이 있으며 그리드의 각 행에는 데이터 입력을위한 6 개의 선택 (드롭 다운) 컨트롤이 있습니다. 표시 될 행의 수는 페이지의 다른 영역에 지정된 사용자의 검색 매개 변수에 따라 다릅니다. 불행하게도 기본 (심지어 기본) 검색 매개 변수를 지정하면 그리드에 수백 개의 행이 포함될 수 있습니다. 나는 많은 양의 행에 도달하면 브라우저 (이 경우 IE8)가 다소 불규칙하게 작동한다는 것을 알았습니다. 문제가되기 시작하는 행 수에 대한 문서화 된 증거가 없습니다. 예를 들어, 페이지의 소스를 보려고하면 브라우저에서 페이지를 다시로드해야하는 페이지에 문제가 있음을 알리는 메시지가 나타나며 소스를 얻지 못합니다. 분명히 페이지가로드되고 렌더링이 다소 천천히 진행됩니다.HTML 폼에서 사용할 수있는 입력 컨트롤의 최대 수는 있습니까?

내 솔루션 아마도 페이지 당 20 행 정도만 표시 할 수 있도록 gridview를 페이징해야 할 것입니다. 그리고 사용자가 드롭 다운 값의 변경 사항을 저장하는 코드를 작성해야합니다. 페이지를 변경합니다. 나는 아마도 gridview viewstate 해제 할 수도 있습니다. 그러나 내가 정말로 갖고 싶은 질문은 - HTML 브라우저 폼에 포함될 수있는 입력 컨트롤의 최대 수를 나타내는 문서화 된 규칙을 본 사람이 있습니까? 검색을 한 후에 인터넷에서 아무 것도 찾을 수 없었습니다. 그리고 그 대답은 브라우저가 실행중인 컴퓨터 구성에 따라 처리 할 수있는 모든 것일 수 있습니다. 너가 사용하는 어림짐작의 규칙?

의견을 보내 주셔서 감사합니다.

리치

+2

유일하게 문서화 된 규칙은 상식입니다. 페이지에 더 많은 컨트롤을 넣지 않으면 데스크톱 응용 프로그램의 폼에 컨트롤을 넣을 수 있습니다. – zildjohn01

답변

1

더 좋은 디자인이 있습니까? 사용 시나리오는 무엇입니까?

예를 들어 (웹에서 "Excel"이라고 부르지는 않지만) 요구 사항이 제시되면 대부분 읽기 전용 데이터 세트를 제시하고 jQuery를 사용하여 클릭하면 컨트롤을 편집하는 단일 행? 아마도 심지어 한 번에 20 줄만로드하면서 "무한 스크롤"을 시뮬레이트하는 일부 서버 측 페이징을 사용합니까? 브라우저에서 편집 컨트롤의 수를 줄이면서 표시되는 (그리고 DOM에 저장된) 데이터를 이처럼 작게 유지할 수 있으며, 원하는 기능을 대부분 제공하는 경우 (모두는 아닐 경우) 맨 위에 표시 할 수 있습니다.

일반적으로 한 번에 볼 수있는 수많은 입력 컨트롤은 유용성 악몽이며 눈에 띄게 혼란스럽고 줄 바꿈/처리가 어렵습니다. 위에서 설명한 것과 같은 솔루션으로 거의 확실하게 나을 수 있습니다. 예, 그것은 클라이언트 측 스크립트의 톤이 될 것입니다.하지만 브라우저, 사용자 및 궁극적으로는 여러분도 쉽게 될 것입니다.

+0

정말 좋은 생각입니다! – markthewizard1234

1

클라이언트 시스템의 메모리가 상당히 낮을 것입니다. 내가 아는 한 컨트롤의 수에는 실제 제한이 없습니다. 하루가 끝나면 코드가 지시하는 바를 렌더링하는 것은 브라우저 엔진입니다. 거기 문이 말을하면 더있다 :

if (this.InputControls.Count > N) then GoBang(); 

당신은 아마 컨트롤 많은 수의 경험있는 이상한 행동은 아마도 그 자체가 컴퓨터의 CPU와 메모리에 히트에 의한 렌더링 컨트롤입니다. 프로젝트를 배포하고 약간 다른 스펙의 컴퓨터에서 사이트를 실행하면 차이가 발생할 수 있습니다.

그렇다면 엄청난 양의 컨트롤이 정말로 필요한가요? 페이징을 사용해야한다고 생각한다는 사실은 당신이 잘못하고 있다는 것을 암시합니다. 제대로 수행하고 페이징을 구현하거나 나중에 문제를 해결하고 클라이언트를 윙윙 거려야합니다.

관련 문제