我的自定义验证器正在工作,唯一的问题是它在其他任何事情之前没有触发,它同时发生。是的,我在收到参数时收到错误消息,但我也得到了我的应用程序的其余部分。在满足所述参数之前,我甚至不想发生任何事情。
这就是我的意思:
<asp:TextBox ID="tbLocation" runat="server"></asp:TextBox>
<asp:CustomValidator ID="valMatchLocation" runat="server" ControlToValidate="tbLocation"
ErrorMessage="Please include date or date range." OnServerValidate="valMatchLocation_ServerValidate"> </asp:CustomValidator>
我的代码背后:
Protected Sub valMatchLocation_ServerValidate(source As Object, args As ServerValidateEventArgs)
Dim current_user = CurrentUser.AuthenticatedData.Get_CurrentUser
If (args.Value = current_user.Id) Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
在测试时,这确实是我想要的一部分;但是,此验证不会在应用程序的其余部分之前发生。例如:用户想要搜索与该用户特定Id不相关的一些文档,因此如果用户输入不属于他们的Id,则他们必须满足其他参数才能实际进行搜索。
请帮忙。我变得非常沮丧。虽然,我确信它有点愚蠢但我不知道:{
答案 0 :(得分:0)
您是否使用过自定义验证器的客户端验证?
您可以使用以下内容:
VB代码:
valMatchLocation.ClientValidationFunction = "ValidateSomething";
valMatchLocation.EnableClientScript = true;
使用Javascript:
function ValidateSomething(sender, args)
{
//Your code here
//if (condition)
{ //satisfied
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}
这可以解决您的问题,因为验证发生在回发到服务器之前。
希望这有帮助!!!