2011-11-08 1 views
1

사용자가 데이터를 입력 할 수있는 능력을 제공하는 AutocompleteBox을 제공해야합니다. 문자열 필드에 대해 완료해야합니다 (예 : UserName). 문제는 소스 DB 테이블이 10 개의 필드가있는 수십만 개의 레코드로 구성된다는 것입니다.큰 테이블의 자동 완성 데이터 문자열

Silverlight에서 어떻게 처리 할 수 ​​있습니까?

답변

3

먼저 서비스 페이로드를 가능한 작게 유지하십시오. AutoCompleteBox는 하나 또는 두 개의 필드 (키와 값 쌍) 만 있으면됩니다. 그러면 항목을 선택할 때 응용 프로그램은 특정 레코드에 대한 나머지 데이터를 가져 오기 위해 다른 쿼리를 만들 수 있습니다.

둘째, 자동 완성 결과를 페이징하는 것이 좋습니다. 사용자가 자동 ​​완성 상자에 두 개 또는 세 개의 문자를 입력 할 때까지 초기 쿼리를 작성하지 마십시오. 일단 데이터베이스에 쿼리하면 해당 기준에 더 가까운 값의 하위 집합을 가져옵니다. 문자를 제거하는 경우 데이터 원본 값을 변경하려면 테이블을 다시 쿼리해야합니다.

키는 1) 문자열 값을 기반으로 테이블을 인덱싱하고 2) 네트워크 페이로드를 작게 유지할 수 있도록 서버에서 클라이언트로 가능한 한 작게 가져 오는 것입니다.