邮政编码是在原有数值型控件上进行加工,相同的功能,只是减少部分代码就可以了。当然如此相同的控件有电话号码,手机等等,凡是碰到处理关于数字的控件都可以用同样的方法,区别点就是理性条件语句及正则表达式。代码如下:
控件缺点:
1、向用户曝露原代码。与服务器控件开发之一:数值型控件,有相同的问题。解决这种办法非常简单,就是将javascript原代码写成js文件,然后在page.clientscript.registerstartup中注册相关代码时只需要将连接到里面就行了。
控件名称: | PostcodeTextBox |
功 能: | 只能输入及粘贴数值型数据,无小数点。 |
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中注册相关代码时只需要将连接到里面就行了。