打印本文 打印本文 关闭窗口 关闭窗口
Asp.net组件设计浅论
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1973  更新时间:2009/4/23 10:47:13  文章录入:mintao  责任编辑:mintao
bsp;        

}

       最后的源码如下:

/////////////////////////////////////////////////////////////////////////////

/// 注意,本代码版权所有者为黄忠成先生。

/// 在此表示感谢他写的书《ASP.NET组件设计》

////////////////////////////////////////////////////////////////////////////

using System;

using System.Text;

using System.Drawing;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace PowerAsp.NET.Controls

{

    [ToolboxBitmap(typeof(NumberEditor),"PowerAsp.NET.Controls.NumberEditor.bmp")]

    public class NumberEditor:BaseEditor

    {

        private const string SCP_NUMBER_ONLY_SCRIPT_ID="{29FD7A41-49FD-4fc4-AFA9-6A0B875A1A51}";

        private const string SCP_NUMBER_ONLY_HOOK="return NumberEditor_KeyPress_Handle(this);";

        private const string SCP_NUMBER_ONLY_SCRIPT=

            "<script language=\"JavaScript1.2\">\nfunction NumberEditor_KeyPress_Handle(ctrl)\n{{\n"+

            "if (event.keyCode == 13)\n return true;\n if (event.keyCode < 48 || event.keyCode > 57)\n return false;\n else\n return true;\n}}"+

            "</script>";                                              

        //rending number-limit javaScript.

        private void RenderJavaScript()

        {

            if(!Page.IsClientScriptBlockRegistered(SCP_NUMBER_ONLY_SCRIPT_ID))    Page.RegisterClientScriptBlock(SCP_NUMBER_ONLY_SCRIPT_ID,string.Format(SCP_NUMBER_ONLY_SCRIPT,base.ID));

        }

        protected override void AddAttributesToRender(HtmlTextWriter writer)

        {

            base.AddAttributesToRender(writer);           

            writer.AddAttribute("OnKeyPress",SCP_NUMBER_ONLY_HOOK);        

        }

        protected override void OnPreRender(EventArgs e)

        {

            base.OnPreRender (e);

            RenderJavaScript();         

        }      

        public NumberEditor():base()

        {      

        }

    }

}

 

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口