服务器控件开发之二:邮政编码控件

        邮政编码是在原有数值型控件上进行加工,相同的功能,只是减少部分代码就可以了。当然如此相同的控件有电话号码,手机等等,凡是碰到处理关于数字的控件都可以用同样的方法,区别点就是理性条件语句及正则表达式。代码如下:
控件说明
控件名称: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);
        }

    }

}




控件缺点:
1、向用户曝露原代码。与服务器控件开发之一:数值型控件,有相同的问题。解决这种办法非常简单,就是将javascript原代码写成js文件,然后在page.clientscript.registerstartup中注册相关代码时只需要将连接到里面就行了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值