2010-03-05 7 views
0

나는 서버에서 유효성을 검사하는 사용자 정의 검사기와 버튼 (PostbackUrl = "Page2.aspx")을 사용합니다.크로스 페이지 게시 및 사용자 정의 검사기

버튼을 누르면 페이지가 유효한지 확인하지 않고 브라우저에 항상 Page2가 표시됩니다.

누구든지 해결 방법을 알고 있습니까?

+0

page2.aspx는 시작한 페이지와 다른 페이지입니까? - PostBackUrl을 사용하는 이유는 무엇입니까? 당신은 Page1을 가지고 있고, 클릭 후 당신은 Page2에 가야합니까? – Aristos

+0

예, Page1에서 시작하고 버튼을 클릭하면 Page2로 이동합니다. – Vinzcent

답변

0

asp.net에 의해 추가 된 "WebForm_DoPostBackWithOptions"onclick 이벤트 처리기가 양식의 "action"속성을 "PostbackURL"단추 속성으로 설정 한 것으로 변경하므로 서버 측 유효성 검사가 실행되지 않습니다. page2.aspx ". 즉, 포스트 백은 사용자 정의 유효성 검사기가있는 페이지를 전달하여 "Page2.aspx"로 곧바로 이동하므로 서버 측 유효성 검사가 실행되지 않습니다. 그러나 페이지가 제출되기 전에 클라이언트 쪽 유효성 검사가 실행됩니다.

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     this.Button1.PostBackUrl = string.Empty; 
     this.Button1.Click += new EventHandler(this.Button1_Click); 
     this.CustomValidator1.ServerValidate += new ServerValidateEventHandler(this.CustomValidator1_ServerValidate); 
    } 

    void Button1_Click(object sender, EventArgs e) 
    { 
     if (this.Page.IsValid) 
     { 
      this.Response.Redirect("~/page2.aspx"); 
     } 
    } 

    void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
     // validation logic here 
    } 
} 

희망이 귀하의 질문에 대한 대답 :

이 문제를 해결하는 방법은 버튼에 대한 서버 측 클릭 이벤트 투수를 추가하고 다음과 같이 페이지가 유효한 경우 그 방법에 PAGE2로 리디렉션하는 것입니다.

키스

관련 문제