服务器控件开发之二:邮政编码控件
来源:互联网 发布:快速排序c语言实现 编辑:程序博客网 时间:2024/04/24 10:28
邮政编码是在原有数值型控件上进行加工,相同的功能,只是减少部分代码就可以了。当然如此相同的控件有电话号码,手机等等,凡是碰到处理关于数字的控件都可以用同样的方法,区别点就是理性条件语句及正则表达式。代码如下:
控件说明 控件名称: PostcodeTextBox 功 能: 只能输入及粘贴数值型数据,无小数点。
控件缺点:
1、向用户曝露原代码。与服务器控件开发之一:数值型控件,有相同的问题。解决这种办法非常简单,就是将javascript原代码写成js文件,然后在page.clientscript.registerstartup中注册相关代码时只需要将连接到里面就行了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NetCRM.UI
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:PostcodeTextBox runat=server></{0}:PostcodeTextBox>")]
public class PostcodeTextBox : TextBox
{
private string strHeader = "<script language="javascript" type="text/javascript"> <!-- ";
private string strFooter = "--> </script>";
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
this.Attributes.Add("onkeypress", "PostcodeTextBox_KeyPress()");
this.Attributes.Add("onpaste", "return PostcodeTextBox_Paste()");
base.AddAttributesToRender(writer);
}
protected override void OnPreRender(EventArgs e)
{
string strScript = " function PostcodeTextBox_KeyPress() ";
strScript = strScript + " { ";
strScript = strScript + " var keycode=event.keyCode; ";
strScript = strScript + " if(!(keycode>47&&keycode<58)) ";
strScript = strScript + " event.keyCode=0; ";
strScript = strScript + " } ";
strScript = strScript + " function PostcodeTextBox_Paste() ";
strScript = strScript + " { ";
strScript = strScript + " var b=clipboardData.getData('text'); ";
strScript = strScript + " var c=b.match("^/d+$"); ";
strScript = strScript + " return (c==null||c==false)?false:true; ";
strScript = strScript + " } ";
strScript = strHeader + strScript + strFooter;
if (!this.Page.ClientScript.IsStartupScriptRegistered("PostcodeTextBoxScript"))
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "PostcodeTextBoxBoxScript", strScript);
base.OnPreRender(e);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NetCRM.UI
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:PostcodeTextBox runat=server></{0}:PostcodeTextBox>")]
public class PostcodeTextBox : TextBox
{
private string strHeader = "<script language="javascript" type="text/javascript"> <!-- ";
private string strFooter = "--> </script>";
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
this.Attributes.Add("onkeypress", "PostcodeTextBox_KeyPress()");
this.Attributes.Add("onpaste", "return PostcodeTextBox_Paste()");
base.AddAttributesToRender(writer);
}
protected override void OnPreRender(EventArgs e)
{
string strScript = " function PostcodeTextBox_KeyPress() ";
strScript = strScript + " { ";
strScript = strScript + " var keycode=event.keyCode; ";
strScript = strScript + " if(!(keycode>47&&keycode<58)) ";
strScript = strScript + " event.keyCode=0; ";
strScript = strScript + " } ";
strScript = strScript + " function PostcodeTextBox_Paste() ";
strScript = strScript + " { ";
strScript = strScript + " var b=clipboardData.getData('text'); ";
strScript = strScript + " var c=b.match("^/d+$"); ";
strScript = strScript + " return (c==null||c==false)?false:true; ";
strScript = strScript + " } ";
strScript = strHeader + strScript + strFooter;
if (!this.Page.ClientScript.IsStartupScriptRegistered("PostcodeTextBoxScript"))
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "PostcodeTextBoxBoxScript", strScript);
base.OnPreRender(e);
}
}
}
控件缺点:
1、向用户曝露原代码。与服务器控件开发之一:数值型控件,有相同的问题。解决这种办法非常简单,就是将javascript原代码写成js文件,然后在page.clientscript.registerstartup中注册相关代码时只需要将连接到里面就行了。
- 服务器控件开发之二:邮政编码控件
- 开发和使用自定义服务器控件 (二)
- 自定义服务器控件开发之:文件上传控件
- android控件开发之ExpandableListActivity(二)
- asp.net2.0自定义服务器控件开发(二)
- 开发Activex控件【二】
- HTML服务器控件(二)
- ASP.NET服务器控件开发-控件生命周期
- 服务器控件开发之一:数值型控件
- ASP.NET服务器控件开发-控件生命周期
- [学习]服务器控件之组合控件
- JavaScript操作服务器控件之Gridview控件
- ASP.NET 2.0服务器控件开发之基本概念篇
- ASP.NET 2.0服务器控件开发之简单属性
- ASP.NET 2.0服务器控件开发之基本概念篇
- ASP.NET2.0服务器控件开发之实现事件
- ASP.NET 2.0服务器控件开发之简单属性
- ASP.NET 2.0服务器控件开发之复杂属性
- BO XI R2 CMS Cluster: The second CMS Server can't start解决方案
- IBM披露十大最新技术
- 戏说java web开发中的listener和filter
- JTable 使用和介绍
- 如何跟踪Java代码的执行
- 服务器控件开发之二:邮政编码控件
- 如何甄别好程序员?
- IT项目经理必须清楚和把握IT项目管理的弹性特点
- 程序员
- MD5
- 在JAVA中,怎样求字符串的长度?
- java中字符串比较为什么不能用“==”
- 很淡,很滋补
- 我思,故我变