2013-09-27 2 views
1

검색 양식에 여러 개의 asp : 드롭 다운 목록이 있습니다. 그들로부터 항목을 선택하고 검색 버튼을 클릭하면 검색 양식 아래에 결과 목록이 표시됩니다. 목록에는 내가 클릭 할 수있는 항목이 있으며 해당 검색 양식은 해당 항목의 상세보기로 바뀝니다. 양식 컨테이너 (검색 및 상세보기 사이를 탐색 할 수있는 장소) 위에 일반적인 메뉴 항목 (검색, 새 항목 추가 등)이있는 헤더와 같은 탐색 메뉴가 있습니다.양식으로 돌아갈 때 asp : DropDownList 시나리오가 선택된 값으로 유지됩니까?

다음 시나리오를 상상해보십시오. 드롭 다운 및 기타 검색 필드에 정보를 입력하고 검색 버튼을 누릅니다. 나는 결과 목록을 얻는다. 목록에서 하나의 항목을 열어 상세한보기를 봅니다. 헤더 검색 메뉴에서 검색 버튼을 누르면 검색 결과로 돌아갑니다. 모든 결과는 결과 목록을 떠나기 전과 동일하게 유지되며 모든 검색 매개 변수 필드는 동일한 값을 가지며 ddl은 검색을 수행 할 때 입력 한 동일한 선택 값을 갖습니다. - 완벽한 시나리오예요. 그러나 대신이 드롭 다운 목록 중 하나는 검색에 사용한 것과 동일한 값을 표시하지 않기로 결정했습니다. 기본 값을 보여 주며, 아직 검색을 사용하지 않았을 때 표시됩니다.

누구나 다른 시나리오를 설명 할 수 있습니까? 드롭 다운이 선택한 항목으로 남아 있지 않을 때와 그렇지 않은 경우가 있습니다.

+0

어떻게 데이터를 해당 드롭 다운에 바인딩합니까? 코드 표시. –

+0

실제 데이터 바인딩이 없습니다 - ascx 파일에 목록이 생성됩니다. 또한 ListItem이 거기에 추가됩니다. – Marek

답변

0

드롭 다운 목록에서 선택한 항목을 유지하지 않는 가장 일반적인 시나리오는 드롭 다운 목록의 내용이 리바운드되고 이전 데이터 집합과 함께 새 데이터 집합에 일치하는 값이없는 경우입니다 :

초기 페이지로드시 드롭 다운 목록에 A, BC의 드롭 다운 목록이 있습니다. 사용자는 드롭 다운 목록에서 B을 선택합니다.

이제 사용자가 페이지에서 작업 (예 : 검색 버튼 클릭)을 수행하고 페이지가 서버에 다시 게시됩니다. 검색 결과는 D, EF으로 드롭 다운 목록을 채 웁니다. 분명히 앞에서 선택한 B의 값과 일치하는 것은 없으므로 드롭 다운 목록에서 드롭 다운 목록의 첫 번째 항목을 선택합니다.이 값은 D입니다.

선택한 항목 값을 유지하는 데 ViewState이 필요하지만 흔히 그 효과를 얻을 필요는 없으며 일반적으로 더 쉽게 사용할 수 있습니다. 따라서 ViewState을 해제한다고해서 반드시 포스트 백간에 선택한 항목을 추적 할 수는 없습니다.

응용 프로그램에서 ViewState을 효과적으로 사용하고 사용하지 않는 방법에 대한 자세한 내용은 TRULY UNDERSTANDING VIEWSTATE을 읽으십시오.

+0

그런 경우, 값을 재 선택하는 것이 ddl 항목의 값 또는 ID를 사용합니까? 사실, 그것의 점점 더 이상한 - 나는 그 ddl에 9 개의 값을 가지고 있고 마지막 하나는 재선되지 않습니다 ... – Marek

관련 문제