2009-10-31 117 views
0

我想通過代碼來創建一個validatior behind.But雖然我創建它,它不火的時候在頁面的onload event.What回傳occurs.I驗證瞭解創建能原因是什麼?這是我的代碼。通過代碼創建的RequiredFieldValidator背後

Public Sub Validate(ByVal p_Page As Page, ByRef p_AssignedControl As System.Web.UI.WebControls.WebControl, ByVal p_Message As String) 

    Dim v_VCALLOUT As New AjaxControlToolkit.ValidatorCalloutExtender 

    Dim r_VALIDATOR As New System.Web.UI.WebControls.RequiredFieldValidator 
    Dim placeHolder As PlaceHolder = p_Page.FindControl("Vld") 


    With r_VALIDATOR 

     .ID = "r_" & p_AssignedControl.ID 
     .ControlToValidate = p_AssignedControl.ID 
     .Display = ValidatorDisplay.None 
     .ErrorMessage = p_Message 
     .Font.Name = "Verdana" 
     .Font.Size = FontSize.XSmall 

    End With 

    With v_VCALLOUT 

     .ID = "v_" & r_VALIDATOR.ID 
     '.CssClass = "highlight" 
     .HighlightCssClass = "highlight" 
     .WarningIconImageUrl = "~/images/warning.gif" 
     .CloseImageUrl = "~/images/close.gif" 
     .TargetControlID = r_VALIDATOR.ID 
     .Enabled = True 

    End With 

    placeHolder.Controls.Add(v_VCALLOUT) 
    placeHolder.Controls.Add(r_VALIDATOR) 


End Sub 

回答

0

我發現reason.I打電話驗證Sub如果page.IsPostpact = False.If我在每一個回發調用驗證子,它的偉大工程。

0

首先想到:(從MSDN)

無驗證消息從不顯示行內。

你有一個驗證摘要?

第二個想法:

嘗試在Page_Init事件中創建您的驗證器。

+0

我試圖第二,但它不幹活不明白「無驗證消息從不顯示在線」。當我使用ASPX這些控件,它works.Why不是在後面的代碼?我認爲這是關於頁面事件但我無法猜測在哪裏。 – Alexander 2009-10-31 13:07:18

+0

什麼是公用Sub驗證(BYVAL p_Page作爲頁,爲ByRef p_AssignedControl作爲System.Web.UI.WebControls.WebControl,BYVAL p_Message作爲字符串)是什麼意思? – Arthur 2009-10-31 13:56:02

+0

因爲我聲明這個子模塊,然後在頁面中調用它。我不wanan在我的頁面重複相同的代碼。 – Alexander 2009-10-31 14:07:20