Page.IsValid和args.IsValid是否依赖于其他?
我的意思是如果args.IsValid =" true" Page.IsValid必须是" true"。
反过来说: 如果Page.IsValid =" true"所以args.IsValid =" true"
答案 0 :(得分:2)
两者在实现Page.IsValid应用于页面时都是安静的不同而args.isValid用于自定义验证目的,请参阅下面的示例
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>CustomValidator ServerValidate Example</title>
<script runat="server">
void ValidateBtn_OnClick(object sender, EventArgs e)
{
// Display whether the page passed validation.
if (Page.IsValid)
{
Message.Text = "Page is valid.";
}
else
{
Message.Text = "Page is not valid!";
}
}
void ServerValidation(object source, ServerValidateEventArgs args)
{
try
{
// Test whether the value entered into the text box is even.
int i = int.Parse(args.Value);
args.IsValid = ((i%2) == 0);
}
catch(Exception ex)
{
args.IsValid = false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h3>CustomValidator ServerValidate Example</h3>
<asp:Label id="Message"
Text="Enter an even number:"
Font-Names="Verdana"
Font-Size="10pt"
runat="server"
AssociatedControlID="Text1"/>
<br />
<asp:TextBox id="Text1"
runat="server" />
<asp:CustomValidator id="CustomValidator1"
ControlToValidate="Text1"
Display="Static"
ErrorMessage="Not an even number!"
ForeColor="green"
Font-Names="verdana"
Font-Size="10pt"
OnServerValidate="ServerValidation"
runat="server"/>
<br />
<asp:Button id="Button1"
Text="Validate"
OnClick="ValidateBtn_OnClick"
runat="server"/>
</form>
</body>
</html>
答案 1 :(得分:1)
Page.IsValid
(readonly)返回true;否则,错误。
要使此属性返回true,请使用所有验证服务器控件 当前验证组必须成功验证。你应该 只有在调用Page.Validate后才能检查此属性 方法,或将CausesValidation属性设置为true 用于ASP.NET服务器控件的OnServerClick事件处理程序 启动表格处理。
在ServerValidation
处理程序中;如果输入验证(args.Value)分别成功或失败,您可以将true
或false
设置为ServerValidateEventArgument.IsValid
属性。
验证例程完成后,使用IsValid属性 指示Value属性指定的值是否传递 验证。此值确定输入控件是否关联 使用CustomValidator控件传递验证。