用动态控件模拟复合控件(二)

NumberTextBox

public abstract class NumberTextBox<T> : BaseTextBox where T : IComparable<T>    {        private T minValue = default(T);        public virtual T MinValue        {            get { return minValue; }            set { minValue = value; }        }        private T maxValue = default(T);        public virtual T MaxValue        {            get { return maxValue; }            set { maxValue = value; }        }        protected abstract T DefaultMinValue { get; }        protected abstract T DefaultMaxValue { get; }        protected ValidationDataType type;        public virtual ValidationDataType Type        {            get { return type; }            set { type = value; }        }        public NumberTextBox()        {            this.FilterType = FilterTypes.Numbers;            this.Options = TextBoxOptions.Required | TextBoxOptions.Filtered;            this.MaxValue = this.DefaultMaxValue;            this.MinValue = this.DefaultMinValue;        }        protected override void BuildValidatorControls()        {            base.BuildValidatorControls();            //添加额外的控件            if ((this.MinValue.CompareTo(this.DefaultMinValue) != 0) && (this.MaxValue.CompareTo(this.DefaultMaxValue) != 0))            {                RangeValidator rv = new RangeValidator();                rv.ID = "rv_" + this.ID;                rv.ControlToValidate = this.ID;                rv.MaximumValue = this.MaxValue.ToString();                rv.MinimumValue = this.MinValue.ToString();                rv.SetFocusOnError = true;                rv.Type = this.Type;                rv.ErrorMessage = string.Format("{0}的值应该位于{1}和{2}之间", this.DisplayName, this.MinValue, this.MaxValue);                this.AddValidator(rv);            }            else if (this.MinValue.CompareTo(this.DefaultMinValue) != 0)            {                CompareValidator cv = new CompareValidator();                cv.ID = "rv_" + this.ID;                cv.ControlToValidate = this.ID;                cv.SetFocusOnError = true;                cv.Type = this.Type;                cv.Operator = ValidationCompareOperator.GreaterThanEqual;                cv.ValueToCompare = this.MinValue.ToString();                cv.ErrorMessage = string.Format("{0}的值应该大于{1}", this.DisplayName, this.MinValue);                this.AddValidator(cv);            }            else if ((this.MaxValue.CompareTo(this.DefaultMaxValue) != 0))            {                CompareValidator cv = new CompareValidator();                cv.ID = "rv_" + this.ID;                cv.ControlToValidate = this.ID;                cv.SetFocusOnError = true;                cv.Type = this.Type;                cv.Operator = ValidationCompareOperator.LessThanEqual;                cv.ValueToCompare = this.MaxValue.ToString();                cv.ErrorMessage = string.Format("{0}的值应该小于{1}", this.DisplayName, this.MaxValue);                this.AddValidator(cv);            }        }    }    public class NumberTextBox : NumberTextBox<int>    {        public NumberTextBox()        {            this.Type = ValidationDataType.Integer;        }        protected override int DefaultMinValue        {            get { return int.MinValue; }        }        protected override int DefaultMaxValue        {            get { return int.MaxValue; }        }    }    public class MoneyTextBox : NumberTextBox<decimal>    {        public MoneyTextBox()        {            this.Type = ValidationDataType.Currency;        }       protected override decimal DefaultMinValue        {            get { return decimal.MinValue; }        }        protected override decimal DefaultMaxValue        {            get { return decimal.MaxValue; }        }    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索return
, this
, public
, cv ait ey
, cv 32f
, type
, protected
, cv svm
动态this
c 复合控件、android 复合控件、复合控件、delphi 复合控件、动态复合开关,以便于您获取更多的相关知识。

时间: 2025-01-21 16:01:22

用动态控件模拟复合控件(二)的相关文章

用动态控件模拟复合控件(一)

动态控件,复合控件,相信大家都已经很熟悉了.只要达到同样的展示及功能,用什么样的方式实现应该取决于实际情况.我在一个项目中遇到的情况是:已经有了很多页面,但每个页面都没有用Validation控件来验证输入的有效性. 为了达到相同的展示效果: 常规办法:是为每个页面的每个TextBox有选择的生成RequiredFieldValidator.RangeValidator.CompareValidator.RegularExpressionValidator.FilteredTextBoxExte

jdk1.5新特性5之枚举之模拟枚举类型

  模拟方式一   package cn.xy.Enum; public class TrafficLampEasy {  private int time;  public final static TrafficLampEasy REDLAMP = new TrafficLampEasy(20);  public final static TrafficLampEasy GREENLAMP = new TrafficLampEasy(20);  public final static Tra

c#-求大侠指教使用C#t对www.chebada.com这个网站模拟登录?

问题描述 求大侠指教使用C#t对www.chebada.com这个网站模拟登录? 使用HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Url); 解决方案 cookie模拟,还是账号密码登陆模拟 解决方案二: 用fiddler得到浏览器是怎么提交请求的,然后用代码模拟.只要没有验证码就没问题. 解决方案三: 是账号密码模拟登录 我用过很多种办法处理过登录,都不成功,有时候能成功一次,但是后面就这么都不能成功了 因为登录页

阿里巴巴开源技术汇总:115个软件(五)

很高兴又和广大读者相见了!今天是第五期阿里巴巴开源技术汇总.在前面四期中我们带领大家浏览了许多阿里的开源项目,相信现在读者们跟我一样对阿里的很多优秀的项目都耳熟能详了.在今天这一期的汇总中,我们又为读者呈现了20个精彩的开源项目,20个新的面孔,现在就和我们一起走近它们,领略它们的风采吧! 1.TimeTunnel [项目简介] TimeTunnel(简称TT)是一个基于thrift通讯框架搭建的实时数据传输平台,具有高性能.实时性.顺序性.高可靠性.高可用性.可扩展性等特点.目前TimeTun

深度学习零基础?没关系——面向艺术家的RNN教程

首发地址:https://yq.aliyun.com/articles/68606 更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍:hardmaru,一位钟情于RNN的深度学习研究者,相关地址 Twitter地址:https://twitter.com/hardmaru Github地址:https://github.com/hardmaru 博客地址:http://blog.otoro.net/ 这篇文章适用于没有任何机器学习背景的读者,目标是向艺术家和

无插件上传-js生成file,ajax传递到服务器

问题描述 js生成file,ajax传递到服务器 求大神帮忙!(后台代码用C#) js动态生成页面之后,将该页面上传到服务器,服务器后台代码保存; HTML页面是动态生成的,我要在页面生成完毕后,将整个HTML在js中生成file传递给服务器的ashx来处理. 我现在不知道在js中如何生成一个file:也不知道怎么将file放到context.Request里面. (就是不用Uploadify插件,因为没有本地文件要上传,文件是在js中生成的) 希望有经验的人指点一下! 感激涕零! 解决方案 将

分布式架构--简易版支付系统介绍

一.工程结构 pay-common-parent 项目的Maven父配置工程 pay-common 公共工程,所有项目均可引用 pay-common-config 公共配置工程 pay-common-core 公共核心工程,service工程共用 pay-common-web 公共web工程,web工程共用 pay-api-merchant 商户API工程,商户对接支付平台时使用(如:模拟商城pay-web-shop) pay-facade-account 账户服务接口 pay-facade-b

策略路由之双出口配置实例(1)

策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制.应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器. 下面让我们通过一个实验 来看一下双出口配置是怎样的过程.策略路由实验拓朴:498)this.w idth=498;' onmousewheel = 'javascript:return big(this)' class=blogimg alt="" src="http://images.51cto.

Android游戏开发学习之引擎用法实例详解_Android

本文实例讲述了Android游戏开发学习之引擎用法.分享给大家供大家参考.具体如下: 汽车引擎是汽车的心脏,其决定了汽车的性能和稳定性,是人们在购车时相当关注的.而游戏中的物理引擎就如汽车的引擎一样,占据了非常重要的位置.一款好的物理引擎可以非常真实地模拟现实世界,使得游戏更加逼真,提供更好的娱乐体验. 一.JBox2D简介 JBox2D是开源物理引擎Box2D的Java版本,可以直接用于Android.由于JBox2D的图形渲染使用的是Processing库,因此在Android平台上使用JB