2010-05-12 7 views

답변

1

당신은 Page.IsValid 및 Page.Validate()

http://weblogs.asp.net/rajbk/archive/2007/03/15/page-isvalid-and-validate.aspx

편집 한 후 사용할 수있는 직접 CustomValidator 서버 컨트롤을 사용하는 가정 : // 여기입니다 작업 샘플 :

JS :

<script type="text/javascript"> 
    function EmpIDClientValidate(ctl, args) { 
     // the value is a multiple of 5 if the module by 5 is 0 
     args.IsValid = (args.Value % 5 == 0); 
    } 
</script> 

영문 :

<table> 
     <tr> 
      <td> 
       ID (multiple of 5): 
      </td> 
      <td> 
       <asp:TextBox runat="server" Width="200px" ID="EmpID" Text="12"/> 
       <asp:RequiredFieldValidator runat="server" ID="ValidateEmpID" ControlToValidate="EmpID" 
        ErrorMessage="ID is required" Display="dynamic">* 
       </asp:RequiredFieldValidator> 
       <asp:CustomValidator runat="server" ID="ValidateEmpID2" ControlToValidate="EmpID" 
        ClientValidationFunction="EmpIDClientValidate" ErrorMessage="ID must be a multiple of 5" 
        Display="dynamic" OnServerValidate="ValidateEmpID2_ServerValidate">* 
       </asp:CustomValidator> 
      </td> 
     </tr> 
    </table> 
    <br /> 
    <asp:Button runat="server" Text="Submit" ID="Submit" OnClick="Submit_Click" /><br /> 
    <br /> 
    <asp:CheckBox runat="server" ID="chkEnableValidators" Checked="True" AutoPostBack="True" 
     Text="Validators enabled" OnCheckedChanged="OptionsChanged" /> 
    <br /> 
    <asp:CheckBox runat="server" ID="chkEnableClientSide" Checked="True" AutoPostBack="True" 
     Text="Client-side validation enabled" OnCheckedChanged="OptionsChanged" /> 
    <br /> 
    <asp:CheckBox runat="server" ID="chkShowSummary" Checked="True" AutoPostBack="True" 
     Text="Show summary" OnCheckedChanged="OptionsChanged" /> 
    <br /> 
    <asp:CheckBox runat="server" ID="chkShowMsgBox" Checked="False" AutoPostBack="True" 
     Text="Show message box" OnCheckedChanged="OptionsChanged" /> 
    <br /> 
    <br /> 
    <asp:ValidationSummary runat="server" ID="Summary" DisplayMode="BulletList" HeaderText="<b>Please review the following errors:</b>" 
     ShowSummary="true" /> 
    <asp:Label runat="server" ID="Result" ForeColor="magenta" Font-Bold="true" EnableViewState="False" /> 

그리고 코드 숨김 : 당신이 사용할 수있는 자바 스크립트의 경우

<body onload ="Functionname()"> 

로 함수를 호출 할 수 있습니다

protected void Page_Load(object sender, EventArgs e) 
{ 
    // To run all validators 
    Page.Validate(); 
    // To run just one validator: 
    ValidateEmpID2.Validate(); 
} 

protected void Submit_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
     Result.Text = "Thanks for sending your data"; 
    else 
     Result.Text = "There are some errors, please correct them and re-send the form."; 
} 

protected void ValidateEmpID2_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    try 
    { 
     args.IsValid = (int.Parse(args.Value) % 5 == 0); 
    } 
    catch 
    { 
     args.IsValid = false; 
    } 
} 

protected void OptionsChanged(object sender, EventArgs e) 
{ 
    // Examine all the validators on the back. 
    foreach (BaseValidator validator in Page.Validators) 
    { 
     // Turn the validators on or off, depending on the value 
     // of the "Validators enabled" check box (chkEnableValidators). 
     validator.Enabled = chkEnableValidators.Checked; 

     // Turn client-side validation on or off, depending on the value 
     // of the "Client-side validation enabled" check box 
     // (chkEnableClientSide). 
     validator.EnableClientScript = chkEnableClientSide.Checked; 
    } 

    // Configure the validation summary based on the final two check boxes. 
    Summary.ShowMessageBox = chkShowMsgBox.Checked; 
    Summary.ShowSummary = chkShowSummary.Checked; 
} 
+0

+0

위의 예제가 작동합니다. – anilca

+0

페이지로드시 사용자 정의 유효성 검사기를 호출하려고합니다. –

0

Page.Validate(), 당신은

+0

Page.validate가 작동하지 않습니다. 그래, 난 CustomValidate 서버 컨트롤을 사용하고 있습니다. Page.Validate는 항상 "true"를 표시합니다. –

0

로 온로드 = "자바 스크립트 : FUNCTIONNAME();"

관련 문제