【问题标题】:asp.net usercontrol SetFocusOnErrorasp.net 用户控件 SetFocusOnError
【发布时间】:2010-07-22 18:42:06
【问题描述】:

我有一个 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 页面上使用验证器,则行为会发生

谢谢 香农

【问题讨论】:

    标签: asp.net user-controls requiredfieldvalidator


    【解决方案1】:

    您不能将用户控件设置为可见,因为它不是可见容器。您可以通过编程方式自己设置焦点。看到这个:

    http://forums.digitalpoint.com/showthread.php?t=282224

    或者,您可以通过编程将验证器设置为用户控件中文本框的 ID;在用户控件代码隐藏中公开一个 textboxID 属性,该属性返回文本框的 ID,并让您的页面将验证器的 controltovalidateID 分配给它。

    【讨论】:

    • 感谢您的回复.. 我不想将用户控件设置为可见。我希望做的是,如果验证出现错误,表单上的按钮不会触发它的事件。这就是当用户控件不在图片中时它似乎工作的方式。但是对于用户控件,验证会触发,但如果验证失败,按钮事件也会触发。我不希望它这样做,因为它不会在非用户控制的事件上验证失败时这样做。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2010-09-06
    • 2011-07-10
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多