当前位置:  开发笔记 > 编程语言 > 正文

从其父页面验证ASP.NET用户控件

如何解决《从其父页面验证ASP.NET用户控件》经验,为你挑选了1个好方法。

我有一个带有按钮的asp.net页面.此按钮生成用户控件并将其插入页面,因此一个页面上可能存在许多控件.我需要验证生成的控件中是否存在某个动态生成的控件.

所以......页面有0到N的Control1.每个Control 1可以有0到N个Control2.当在页面上单击SaveButton时,我需要确保每个Control1中至少有一个Control2.

我目前有两种选择:

•为生成的每个控件动态插入CustomValidator,每个控件都将验证一个Control1.

•手动(使用jQuery)进行验证,从SaveButton.OnClientClick调用验证函数.

两者都以自己的方式草率 - 这就是为什么我要和大家分享这个.我错过了简单的解决方案吗?

在此先感谢..(顺便说一句 - 任何包括.NET 3.5 SP1在内的公平游戏)



1> SecretDevelo..:

嗯我喜欢digiguru建议的界面想法,但我会使用容器Control1上的接口而不是子控件,因为它似乎是代码生存的更合理的位置.继承我的看法:

public interface IValidatableControl
{
    bool IsValidControl();    
}

然后在Control1上实现它

public class Control1 : IValidatableControl
{
... Other methods
    public bool IsValidControl()
    {

        foreach(object c in this.Controls)
        {
            if(c.GetType() == "Control2")
                return true;
        }
        return false;
    }

}

可能有更好的方法来写这个,但它应该给你足够的想法开始.


您应该在ASP.Net中使用IValidator接口,它提供IsValid,Validate和ErrorMessage.您的验证器应该实现它,并且在您的Init触发器中,您需要调用Page.Validators.Add(this).
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有