我有一个 aspx 页面,页面上有几个相同的用户控件。用户控件包含一个文本框,上面有一个必填字段验证器。验证器工作,但 setonfocus="true" 似乎没有工作,此外,当验证器显示错误消息时,按钮的 aspx 页面,按钮仍然触发后面的代码。
就用户控件和按钮而言,这是 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
无论如何..希望这是您需要指出我正确方向的信息。
我想要做的是,如果用户控件文本框中没有任何内容并且 aspx 页面上的按钮不会触发,则所需的字段验证器是否将焦点放在用户控件上。就像我认为它的行为,如果你在没有用户控件的 aspx 页面上使用验证器
谢谢香农