各位同仁:本人曾从事情WINFORM程序开发,现初学ASP.NET价段,有一些在WINFORM的想法要在WEB开发中实现,希望各位指教:
我自定义了一个WEB控件(它从System.Web.UI.Controls.TextBox控件继承),在它里面加入了自己需要的属性,现在需要向该控件添加一个KeyDown事件(原来只有TextChange事件没有KeyDown事件),并且这个事件要在客户端做出响应,请问各各位这一功能怎么实现。其次,如果实现刚才功能了,在客户端脚里又怎么样来屏蔽用户输入的不合格的键值呢?我在客户端的脚本里用window.event.keyCode=null;不起效果。再次请各位指教,谢谢!

解决方案 »

  1.   

    以button为例Button1.Attributes.Add("OnMouseDown","alert('You clicked me.');");
      

  2.   

    zorou_fatal:谢谢你的参与,不过你这样是动态加载指定控件已的事件的处理方法,我的意思是在指定控件没有给定事件的情况要为它添加一个自定义事件来完成相关操作。比如:System.Web.UI.WebControls.TextBox控件,就没有KeyDown事件,现在我要为它添加一个自定义事件KeyDown,添加后可以在客户端代码里响应客户键盘的输入,并能处理。
      

  3.   

    System.Web.UI.WebControls.TextBox控件,就没有KeyDown事件,现在我要为它添加一个自定义事件KeyDown,添加后可以在客户端代码里响应客户键盘的输入,并能处理。
    ———————————————————————————————————————————
    你首先应该明白服务器控件是干什么的。服务器控件不负责执行客户端事件,它仅仅用于输出html代码。服务器控件上按照.net标准写的类型代码以及所编译的结果都是在服务器上执行的。服务器控件很笨的,电脑是很笨的,没有人那么聪明,不能够让你用c#写一段OnMouseDown代码结果还让这个c#程序运行在浏览器上。
      

  4.   

    sp1234:谢谢你的参与,按照你的意思,我的那种想法是不可能实现的了?不过,至少有一个问题那是可以去进入讨论的,那就是WEB控件在服务器端,他还是要把操作界面呈现到客户端让客户输入内容,那么对WEB控件在呈现外观的同时,可不可以把它自己定义的事件也一呈现呢?如果可以,那么在用户输入键值的时候就可以执行相应的自定义事件的处理过程,你觉得是吗?
      

  5.   

    实际上也不是不可以
    做个组件库,用<ojbect>标签引入页面
    不过这么做,和原来的activex一样,客户需要下载dll,而且多了一条限制,就是客户机也必须要有net环境以运行dll,普适性太差,所以一般开发都不会这么做