2011-08-31 3 views
0

CustomValidator를 사용하여 양식의 유효성을 검사하므로 텍스트 상자의 배경색을 지정할 수 있습니다.OnServerValidate ASP.Net의 PostBackUrl에서 작동하지 않습니다. C#

양식의 linkbutton을 클릭하면 CustomValidator의 코드가 호출되지 않습니다. 그러나 PostBackUrl = "orderconfirm.aspx"를 제거하면 코드가 호출되어 제대로 작동합니다.

aspx 페이지 :

<asp:TextBox ID="txtBillingLastName" Name="txtBillingLastName" runat="server">/asp:TextBox> 

<asp:CustomValidator 
    ID="CustomValidatorLN" runat="server" 
    ControlToValidate="txtBillingLastName" 
    OnServerValidate="CustomValidatorLN_ServerValidate" 
    ValidateEmptyText="True"> 
</asp:CustomValidator> 
<asp:LinkButton 
    ID="OrderButton" runat="server" 
    PostBackUrl="orderconfirm.aspx" 
    onclick="OrderButton_Click">&nbsp; 
</asp:LinkButton> 

코드 숨김

protected void CustomValidatorLN_ServerValidate(object sender, ServerValidateEventArgs args) 
    { 
     bool is_valid = txtBillingLastName.Text != ""; 
     txtBillingLastName.BackColor = is_valid ? System.Drawing.Color.White : System.Drawing.Color.LightPink; 
     args.IsValid = is_valid; 
    } 

나는/C 번호를 .NET으로와 비슷한 문제가 검색에 내가 대답을하지 않았다 솔직히 꽤 새로운 해요 여기에.

도움을 주시면 감사하겠습니다.

답변

1

페이지 요청시 서버 측 코드가 실행되며 다른 페이지로 다시 게시 (요청)하여 코드가 실행되지 않으므로 작동하지 않습니다. 원본 페이지로 다시 게시 한 다음 코드에서 리디렉션 할 수 있지만 가장 쉬운 해결 방법은 orderconfirm.aspx를 완전히 제거하고 원본 페이지의 모든 작업을 수행하는 것입니다.

+0

실제로 입력 한 모든 세부 정보를 확인하기 만하면 최종 제안이 가능합니다. 도와 줘서 고마워. – ComfortablyNumb

관련 문제