2 개의 목록 상자와 두 개의 목록간에 항목을 서로 바꿀 수있는 몇 개의 단추로 구성된 항목 swapper 컨트롤을 만들었습니다. 스와핑은 javascript를 사용하여 수행됩니다. 또한 목록에서 항목을 위아래로 이동합니다. 기본적으로 오른쪽의 목록 상자로 항목을 이동할 때 요소 (GUID)의 데이터 키를 숨겨진 필드에 저장합니다. 포스트 백에서는 필드에서 GUID를 읽습니다. 모든 것이 잘 작동하지만 다시 게시 할 때 다음 예외가 발생합니다.JavaScript로 재 배열 된 ListBox 요소로 인해 다시 게시시 이벤트 유효성 검사 오류가 발생했습니다.
잘못된 포스트 백 또는 콜백 인수. 이벤트 유효성 검사는 구성 또는 < % @ Page EnableEventValidation = "true"%>를 사용하여 활성화됩니다. 보안상의 이유로이 기능은 포스트 백 또는 콜백 이벤트에 대한 인수가 원래 렌더링 된 서버 컨트롤에서 비롯된 것인지 확인합니다. 데이터가 유효하고 예상되는 경우 유효성 검사를 위해 다시 게시 또는 콜백 데이터를 등록하려면 ClientScriptManager.RegisterForEventValidation 메서드를 사용합니다.
테스트 응용 프로그램을 준비했습니다. 아카이브를 다운로드하고 프로젝트를 실행하기 만하면됩니다. 웹 페이지에서 3 항목을 선택하고 모두 추가를 누른 다음 세 번째 요소를 한 수준 위로 이동 한 다음 "버튼"을 누릅니다. 오류가 표시됩니다. 이벤트 유효성 검사를 끄는 것은 결코 용인 할 수없는 방법입니다. 누구든지 나를 도울 수 있습니까? 솔루션을 찾지 않고 이미 2 일을 보냈습니다. 이 렌더링 할 때 목록에서 선택한 항목이 목록에 존재하지 않았기 때문에
는 참고 : 나는 당신의 응용 프로그램을 다운로드하고이 오류가 없었어 - 나는, 그러나, COL1은 데이터 테이블, 또는 그런 일 (지금 그것을보고하지 않음)의 일부가되지 않는 대해 오류가 발생했습니다. 나에게 적합하지 않기 때문에 예제에서이 오류가 발생하는지 확인하고 싶을 수 있습니다. –
또한 '움직이는'앞뒤가 파이어 폭스에서 전혀 작동하지 않는다는 것을 언급하거나 수정하고 싶을 수도 있습니다. –
col1의 오류는 destinationDT.Columns.Add ("colUID", typeof (Guid))로 인해 발생합니다. 및 destinationDT.Columns.Add ("col1", typeof (string)); 포스트 백이 아닌 경우에만 호출되지만 버튼을 클릭 할 때 필요합니다. – Aleris