2009-08-21 5 views
2

사용자가 편집 모드에서 Detailsview 또는 Formview를 사용하고 현재 페이지를 벗어나려고 할 때이 스크립트를 트랩하여 모든 변경 사항을 강제 저장하려고합니다. 사용자가 LinkButton을 클릭했다. 어떻게해야합니까?Detailsp/formview에서 Asp.net 강제 저장

+0

다음은이 주제에 관한 일련의 기사를 발견했습니다. http://aspnet.4guysfromrolla.com/articles/042005-1.aspx – dsteele

답변

3

이 작업은 안정적으로 수행 할 수 없습니다. 컴퓨터가 모두 충돌하거나 전원 코드를 걷어 내면 시나리오를 고려하십시오. 사용자가 페이지를 떠날 수있는 방법은 매우 다양합니다.

그러나 몇 가지 안전 조치를 취할 수 있습니다. 페이지의 모든 링크에서 저장하기 전에 이벤트를 연결할 수 있습니다. 컨트롤 포커스가 변경 될 때마다 저장 작업을 시도 할 수도 있습니다.

할 수있는 또 다른 일은 window.onbeforeunload 이벤트에 연결하여 저장하지 않은 답변이있을 때와 같이 페이지를 떠나기를 원하는지 묻는 확인 메시지를 보내는 것입니다. 그러나이 이벤트로 저장을 강제로 수행 할 수있는 방법은 없습니다.

+0

세 번째 방법을 사용하여 onbeforeunload에 이벤트를 연결하고 확인합니다. 사용자가 저장하지 않고 나가기를 원하는 경우 (더티 플래그를 사용하여 저장되지 않은 데이터가있는 경우 알 수 있으므로 항상 확인 메시지가 표시되는 것은 아닙니다). – mbillard

+0

두 분 모두에게 감사드립니다. 모든 가능한 상황을 다 망설 일 수는 없다는 것을 알고 있지만, 내 앱에서 가장 가능성이 큰 점은 사용자가 다른 페이지로 이동할 때 '저장'을 클릭하는 것을 잊어 버리는 것입니다. – dsteele