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

ASP.NET:如何更改验证失败的控件的背景颜色?

如何解决《ASP.NET:如何更改验证失败的控件的背景颜色?》经验,为你挑选了1个好方法。

我们以下面的简单网站为例:


  


现在,我希望在验证失败时TextBox1将其更改BackColor为黄色.有没有一种简单的方法来实现这一目标?



1> Rich..:

Page.Validators是一个ValidatorCollection.您可以迭代此集合,将每个成员转换为BaseValidator.检查BaseValidator.IsValid并从BaseValidator.ControlToValidate获取控件的名称.使用this.FindControl(控件名称)来获取对控件的引用(这将返回一个Control对象).执行您需要执行的任何类型检查和转换,然后如果您可以将控件转换为TextBox或包含BackColor属性的其他控件,则转换它并设置BackColor.

这是一个简化版本:

   private void setInvalidControlsBackColor()
    {
        Control c;
        TextBox t;
        foreach (BaseValidator v in Page.Validators)
        {
            if (!v.IsValid)
            {
                c = (Control)this.FindControl(v.ControlToValidate);
                // check the type, make sure you can cast this...
                t = (TextBox)c;
                t.BackColor = Color.Yellow;
                // or however else you want to handle this...
            }
        }
    }

我没有包含类型检查代码的原因是因为您可能希望以不同的方式处理不同的控件类型等.另外,如果您没有在验证器上使用ToolTip字段,则可以使用此字段存储附加信息(类似于Tag属性).这可能被认为是丑陋的练习,但是如果你需要的话,那就是你的...可以用来暗示如何处理有效/无效状态.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有