• 数字文本控件


    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.ComponentModel;
    using System.Collections;
    using System.Collections.Specialized;
     
    namespace PublicControls
    {
         ///<summary>
         /// DateTimeBox 的摘要说明。
         ///</summary>
         public class IntTextBox : Control,IPostBackDataHandler
         {
             #region预定义
     
             private int min;
             private int max;
             private Unit width;
             private Unit height;
             private int defaultnum;
     
             ///<summary>
             ///委托页面索引事件
             ///</summary>
             public event EventHandler OnValueChanged;
     
             #endregion
            
             #region属性
            
             ///<summary>
             ///最小值
             ///</summary>
             [Description("最小值")]
             public int MinNum
             {
                  get
                  {
                       if(this.IsNumeric(ViewState["MinNum"]))
                       {
                           min = (int)ViewState["MinNum"];
                       }
                       return min;
                  }
                  set
                  {
                       min = value;
                       ViewState["MinNum"] = min;
                  }
             }
     
             ///<summary>
             ///最大值
             ///</summary>
             [Description("最大值")]
             public int MaxNum
             {
                  get
                  {
                       if(this.IsNumeric(ViewState["MaxNum"]))
                       {
                           max = (int)ViewState["MaxNum"];
                       }
                       return max;
                  }
                  set
                  {
                       max = value;
                       ViewState["MaxNum"] = max;
                  }
             }
     
             ///<summary>
             ///
             ///</summary>
             [Description("值")]
             public int DefaultNum
             {
                  get
                  {
                       if(this.IsNumeric(ViewState["DefaultNum"]))
                       {
                           defaultnum = (int)ViewState["DefaultNum"];
                       }
                       return defaultnum;
                  }
                  set
                  {
                       defaultnum=value;
                       ViewState["DefaultNum"] = defaultnum;
                  }
             }
     
             ///<summary>
             ///宽度
             ///</summary>
             [Description("宽度")]
             public Unit Width
             {
                  get
                  {
                       return width;
                  }
                  set
                  {
                       width = value;
                  }
             }
     
             ///<summary>
             ///高度
             ///</summary>
             [Description("高度")]
             public Unit Height
             {
                  get
                  {
                       return height;
                  }
                  set
                  {
                       height = value;
                  }
             }
             #endregion
     
             #region事件或方法
             ///<summary>
             ///数据回送事件
             ///</summary>
             ///<param name="postDataKey"></param>
             ///<param name="values"></param>
             ///<returns></returns>
             public bool LoadPostData(string postDataKey, NameValueCollection values)
             {
                  if(!this.IsNumeric(values[this.UniqueID]))
                  {
                       return false;
                  }
                 
                  if(DefaultNum != int.Parse(values[this.UniqueID]))
                  {
                    DefaultNum = int.Parse(values[this.UniqueID]);
                      
                       if(DefaultNum>MaxNum)
                       {
                           DefaultNum = MaxNum;
                       }
                       if(DefaultNum<MinNum)
                       {
                           DefaultNum = MinNum;
                       }
                      
                       return true;
                  }
     
                  return false;
             }
     
             ///<summary>
             ///当由类实现时,用信号要求服务器控件对象通知 ASP.NET 应用程序该控件的状态已更改。
             ///</summary>
             public void RaisePostDataChangedEvent()
             {
                 
                  ValueChanged();
                 
             }       
     
             ///<summary>
             ///将事件委托给所调用的页面
             ///</summary>
             public void ValueChanged()
             {
                  if(OnValueChanged!=null)
                  {
                       OnValueChanged(this,System.EventArgs.Empty);
                  }
              }
             #endregion
     
             #region输出
             ///<summary>
             ///将此控件呈现给指定的输出参数。
             ///</summary>
             ///<param name="output">要写出到的 HTML 编写器 </param>
             protected override void Render(HtmlTextWriter output)
             {
                  string view;
                  view=ViewString(MinNum,MaxNum);
                  output.Write(view);
             }
             #endregion
     
             #region其他函数或方法
             ///<summary>
             ///输出字符串组合
             ///</summary>
             ///<param name="min"></param>
             ///<param name="max"></param>
             ///<returns></returns>
             string ViewString(int min,int max)
             {
                  string view="";
                  view+="<script><!--/n";
                  view+="function changetext(direction)/n";
                  view+="{/n";
                  view+="if(direction=='up')/n";
                  view+="{/n";
                  view+="if(document.all."+this.UniqueID+".value<"+max+")/n";
                  view+="document.all."+this.UniqueID+".value=parseInt(document.all."+this.UniqueID+".value)+1;/n";
                  view+="}/n";
                  view+="else/n";
                  view+="{/n";
                  view+="if(document.all."+this.UniqueID+".value>"+min+")/n";
                  view+="document.all."+this.UniqueID+".value=parseInt(document.all."+this.UniqueID+".value)-1;/n";
                  view+="}/n";
                  view+="}/n";
     
                  view+="function keydown()/n";
                  view+="{/n";
                  view+="var KeyCode=event.keyCode;/n";
                  view+="if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46)||(KeyCode==37)||(KeyCode==39)||(KeyCode>95&&KeyCode<106))/n";
                  view+="{/n";
                  view+="return true;/n";
                  view+="}/n";
                  view+="else/n";
                  view+="{/n";
                  view+="return false;/n";
                  view+="}/n";
                  view+="}/n";
     
                  view+="function focusblur()/n";
                  view+="{/n";
                  view+="var num=document.all."+this.UniqueID+".value;/n";
                  view+="if(num>"+MaxNum+")/n";
                  view+="{/n";
                  view+="document.all."+this.UniqueID+".value="+MaxNum+";/n";
                  view+="}/n";
                  view+="if(num<"+MinNum+")/n";
                  view+="{/n";
                  view+="document.all."+this.UniqueID+".value="+MinNum+";/n";
                  view+="}/n";
                  view+="}/n";
     
                  view+="//--></script>";
     
                  view+="<div><span onclick=/"changetext('down')/" style=/"BORDER-RIGHT: black thin solid; BORDER-TOP: black thin solid; BORDER-LEFT: black thin solid; CURSOR: hand; BORDER-BOTTOM: black thin solid;">6</span><input type=text id=/""+this.UniqueID+"/" name=/""+this.UniqueID+"/" value=/""+this.DefaultNum+"/" style=/""+this.Width+";height:"+this.Height+"/" onkeydown=/"return keydown()/" onblur=/"focusblur()/"><span onclick=/"changetext('up')/" style=/"BORDER-RIGHT: black thin solid; BORDER-TOP: black thin solid; BORDER-LEFT: black thin solid; CURSOR: hand; BORDER-BOTTOM: black thin solid;">5</span></div>";
                  return view;
             }
     
     
             ///<summary>
             ///判断是否为数字字符串
             ///</summary>
             ///<param name="obj">需验证的字符串</param>
             ///<returns>判断结果,符合条件为True,不符合条件为False</returns>
             public bool IsNumeric(object obj)
             {
     
                  obj += "";
                  string str = obj.ToString();
                 
                  //判断是否为空
                  if (str == null || str.Length==0)
                  {
                       return false;
                  }
                  //循环检查每个字符
                  foreach(char c in str)
                  {
                       if (!Char.IsNumber(c))
                       {
                           return false;
                       }
                  }
                  return true;
             }
     
             #endregion
         }
    }
     
  • 相关阅读:
    公共服务领域英文译写规范
    [.NET Core]
    [WebAPI]
    [C#]
    [ES]
    [.Net Core]
    [SourceTree]
    如何使用一个库中不存在的函数
    在使用masm32 rc编译资源文件.rc出现的问题
    MSDN 2005 安装问题
  • 原文地址:https://www.cnblogs.com/ZetaChow/p/2237432.html
Copyright © 2020-2023  润新知