2009-12-29 133 views

回答

0

主要是你需要指定你的定制逻辑,如果一切顺利,你会设置args.IsValid = true;否则,你将它设置为false。如果验证失败,则会出现设置的ErrorMessage。

基本轮廓如下:

protected void CustomServerValidate(object sender, ServerValidateEventArgs args) 
{ 
    if (/* custom logic */) 
    { 
     args.IsValid = false; // failed validation 
    } 
    else 
    { 
     args.IsValid = true; // passed validation 
    } 
} 

例如,给定的单选按钮R1和R2你可能有这样的逻辑,以确保它们中的一个选自:

protected void CustomServerValidate(object sender, ServerValidateEventArgs args) 
{ 
    if (!r1.Checked && !r2.Checked) 
    { 
     args.IsValid = false; 
    } 
    else 
    { 
     args.IsValid = true; 
    } 
} 

上面可以直接分配在一行中,但是为了清晰起见而被扩展。作为另一个例子,您可能有一个“其他”类型的按钮,并带有关联的“如果您选择其他,请解释:”文本框。您可以检查是否选择了其他收音机,然后检查文本框等。

+0

如果验证自定义控件(如ID“dpCustomControl1”),那么定制逻辑会是什么? – Sophie 2009-12-29 05:56:56

+0

@Sophie:这取决于您想要从dpCustomControl1控件验证的内容。也许它公开你想要检查特定值的属性,并根据这些值来相应地设置args.IsValid值。 – 2009-12-29 07:07:12

+0

好的欢呼,工程。 但是,当验证是错误的,即使我在CustomValidator标记中提到它,也不会显示错误消息。为什么? – Sophie 2009-12-29 23:49:28

0

只需指定事件参数的IsValid属性即可确定验证是否成功。

我不知道你是否可以用CustomValidator直接链接到RadioButtonList;然而,我所做的是将ControlToValidate设置为文本框或其他有效的控件,并且只需让该CustomValidator验证RadioButtonList;它仍然以这种方式工作,并在错误时正确显示。

HTH。