我有一個頁面上的幾個相同的用戶控件的aspx頁面。用戶控件包含一個文本框,其上有一個必需的字段驗證器。驗證程序工作正常,但setonfocus =「true」似乎不起作用,更進一步,驗證程序顯示錯誤消息時按鈕aspx頁面,該按鈕仍會觸發代碼。asp.net usercontrol SetFocusOnError
下面是aspx頁面看起來像用戶控件和按鈕。
ucTB:ucTextBox ID="ucTextR" runat="server" ValidationGroup="txtRequired" Required="_true"
asp:Button ID="btnSave" runat="server" Text="Click" ValidationGroup="txtRequired"
和用戶控件驗證
asp:RequiredFieldValidator ID="rfTextBox" runat="server" ControlToValidate="txtTextBox"
SetFocusOnError="true" ErrorMessage="Required Field" EnableClientScript="false"
用戶控制已經連接到抓住從aspx頁面驗證,並在用戶控件使用它......像這樣
Public Property ValidationGroup() As String
Get
Return CType(ViewState("ValidationGroup"), String)
End Get
Set(ByVal Value As String)
ViewState("ValidationGroup") = Value
End Set
End Property
Protected Sub AssignValidation()
For Each control As Control In Me.Controls
Dim [property] As PropertyInfo = control.[GetType]().GetProperty("ValidationGroup")
If [property] Is Nothing Then
Continue For
End If
[property].SetValue(control, ValidationGroup, Nothing)
Next
End Sub
我在page_load上加載AssignValidation
無論如何..希望這是您的信息n指出我在正確的方向。
我想要做的是如果所需的字段驗證器把焦點放在用戶控件,如果沒有在usercontrol文本框中,也沒有aspx頁面上的按鈕不會觸發..就像我想的如果一個aspx頁面上使用驗證沒有用戶控件
感謝 香
感謝您的迴應..我不是試圖將用戶控件設置爲可見。我希望做的是,如果驗證發現錯誤,表單上的按鈕不會觸發事件。當用戶控件不在圖片中時,這似乎是工作的方式。但是通過用戶控件,驗證會觸發,但如果驗證失敗,按鈕事件也會觸發。我希望它不要這樣做,因爲在非用戶控制事件的驗證失敗時不會這樣做。 – jvcoach23 2010-07-23 12:23:56