打印本文 打印本文 关闭窗口 关闭窗口
Asp.net组件设计浅论(转)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2382  更新时间:2009/4/23 10:45:05  文章录入:mintao  责任编辑:mintao
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] 

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