2012-03-27 2 views
0

간단한 문제가 있지만 해결 방법을 알 수 없습니다. 필터 및 업데이트를 기반으로 데이터 판독기에서 일부 데이터를 쿼리하는 asp.net 응용 프로그램이 있습니다. 완료 (Done) 버튼을 눌렀을 때 목록 상자에. 문제는 내가 선택을 수정하고 Done을 ​​다시 누르면 이전 값이 여전히 존재한다는 것입니다. 예를 들어 이전 결과가 나타나고 새 값이 추가됩니다. 선택을 수정할 때마다 새 값만 가져 오도록 이전 값을 제거하는 방법은 무엇입니까?이전 항목을 제거하고 버튼을 누르면 목록 상자에서 새로운 항목을로드합니다.

+0

이를 Page_Load에서 포스트 백에 목록 상자를 리 바인드하지 마십시오'경우 BindListBox(); '이 –

+0

아니, 그는 그것을 결합 할 필요가 (다시 게시!) 그냥 이미 거기에 무엇이 제거해야합니다 (어느 ViewState에 저장됩니다, 제 생각 엔). – Dave

+0

아니요. Page_Load에서 바인딩 한 다음 리 바인딩하면 사용자가 변경됩니다. 그가 Page_Init에서 바인딩하지 않으면. – David

답변

3

Page_Load에 값을로드하는 경우 먼저로드 할 때마다 다시 바인딩하지 않도록로드 코드를 if(!Page.IsPostback) 문으로 묶어야합니다. (자세한 내용은 ASP.NET Page Lifecycle를 참조하십시오.) 또한

if(!Page.IsPostback) 
{ 
    // Binding code goes here. 
} 

(, 당신은 당신이 그것을 결합하여 사용자 항목이 할 수 대신하여 Page_Load의 후 Page_Init의 모든 페이지로드에 바인딩 할 수 있습니다 적용 할 때 viewstate가 또는 this great article을 참조하십시오.

다음으로 항목을 제거하려면 목록 상자에서 Clear() 명령을 호출해야합니다.

MyListBox.Items.Clear()

+0

많이 고맙습니다 ... 간단히 Clear()를 사용하여 내 문제를 해결했습니다. – ritz

관련 문제