Asp.net组件设计的浅论(2)
最后的源码如下:
/////////////////////////////////////////////////////////////////////////////
/// 注意,本代码版权所有者为黄忠成先生。
/// 在此表示感谢他写的书《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"> function numbereditor_keypress_handle(ctrl) {{ "+
"if (event.keycode == 13) return true; if (event.keycode < 48 || event.keycode > 57) return false; else return true; }}"+
"</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()
{
}
}
}
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。