2008-10-15 4 views
0

asp.net 서버 컨트롤 (asp : 정의 있음)이 있습니다. 버튼이 포스트 백을하도록 설정되었습니다. 서버 측에 Asp.net 서버 제어 서버 측/클라이언트 측에서 동일한 이벤트 처리 순서

, 내가 클릭 이벤트 핸들러에서이 예를 들어 btnSave_click()

클라이언트 측에

, 내가 클릭 이벤트 예를 들어 btnSave.Attributes.Add (호출 할 수있는 자바 스크립트 함수를 "onclick", "javascript : return CheckIsDirty();")

이 두 순서가 실행될 것인지 확실하지 않습니다. 왜냐하면 먼저 클라이언트 측에서 실제로 데이터를 저장하기 전에 아직 채워지지 않은 데이터 입력 필드에 대해 경고하기를 원하기 때문입니다.

어떤 도움이 필요합니까?

답변

2

첫 번째 클라이언트 쪽, 두 번째 서버 쪽.

그래서 사용할 수 있습니다. 사용자 프레스 '아니오'다음 서버 측 이벤트 핸들러도 역할을하지 않는 경우이 경우

close.Attributes["OnClick"] = "return confirm('Are you sure?')"; 

:

는 또한 같은, 어떤 경우에 사용합니다.

+0

고마워요, 지금은 저에게 효과적입니다 ... –

0

저는 클라이언트 측에서 무엇을 의미하는지, 그리고 서버 측에서 무엇을 의미하는지 그리고 모두 어떻게 관련되어 있는지 훨씬 더 잘 이해해야한다고 생각합니다. 나는 점점 더 많은 개발자들이 그것을 망쳐 놓는 것을 보았다.

물론 클라이언트 쪽이 먼저 실행됩니다. 실제로 서버 코드가 실행 된 후에는 실행할 방법이 없습니다 (수동으로 수행하는 경우는 예외). 간단한 설명을 드리겠습니다 :

서버에 무엇을 가지고 있어도 클라이언트에 HTML이 생성되고 사용자는 항상 클라이언트에서 상호 작용합니다. 따라서 사용자가 클릭하는 html 버튼이 있습니다. 브라우저가 할 일은 자바 스크립트를 실행하거나 자바 스크립트가 지정되지 않았고 버튼이 제출 버튼이면 양식을 제출하는 것입니다. 생성 된 html을 확인하면 onclick 이벤트에 대해 추가 한 스크립트와 실제로 서버에 양식을 제출할 자동 생성 스크립트가 표시됩니다. 페이지가 제출 될 경우에만 서버 측 코드가 실행됩니다.

2

트릭은 테스트가 실패하면이 글로벌 변수 "Page_IsValid"를 false로 설정하여 포스트를 중지합니다.

이 페이지를 읽으십시오. http://msdn.microsoft.com/en-us/library/aa479045.aspx은 서버 측 및 클라이언트 검증을 모두 설명합니다. 좋은 코드 예제가 있습니다.

1

onClick JavaScript 이벤트를 설정하는 방법에 따라 실제로 ASP.NET 이벤트 처리기를 덮어 쓰면 다시 게시되지 않습니다. 자바 스크립트에서 당신이 먼저 CheckIsDirty() 메서드를 호출 한 후 ASP.NET 포스트 백 메소드를 호출하도록하면, GetPostBackEventReference의 결과를 추가

btnSave.Attributes.Add("onclick", "CheckIsDirty();" + GetPostBackEventReference(btnSave).ToString()); 

공지 사항 : 당신이하고자하는 유효성 검사를 수행하는 올바른 방법이다 . 메소드가 true를 반환하면 버튼이 게시됩니다. false를 반환하면 다시 게시되지 않습니다.

당신은 달성하려는 것과 같습니까?

관련 문제