Register  |  Login

在DNN中处理回车键事件

一般来说, "回车键"事件是完成输入工作后提交数据或输入关键字后回车进行搜索的情况下会进行激发。不管在DNN还是一般的BS程序, 我们都会碰到点击回车键"Enter"激发事件的情况, 但是有时我们在同一个页面可能同时存在多个通过回车键提交表单时执行特定的button按钮事件, 这样情况如何处理呢?我们知道Asp.Net 2.0存在一特性, 那就是每个form 或 panel都有一个属性defaultbutton负责回车键"Enter"激发事件, 也就是说你可以设置这一属性来控制你所响应的键盘回车动作, 然而这一属性在Firefox不起作用, 故此我们还得寻找另外的方法. 搜索一下, 似乎存在通过脚本注册的方法可以解决, 同时联想到DNN登陆模块似乎存在这一机制, 研究一番, 原来ClientAPI辅助类有一方法RegisterKeyCapture可以保证当前页面回车键提交表单的目标控件, 故在此共享一下两种解决方案:
1) DNN RegisterKeyCapture方式
 
  1. '注册按钮btnSearch为当前页面回车键提交表单的目标控件, Asc(vbCr)对应就是回车键的ASCII码, 也就是 13, 故你也可以直接设置这一参数为13.   
  2. DotNetNuke.UI.Utilities.ClientAPI.RegisterKeyCapture(Me.Parent, Me.btnSearch, Asc(vbCr))  
2) 注册脚本方式
<1>服务器控件:
 
  1. txtSearch.Attributes.Add("onkeypress""if (event.keyCode == 13) {document.forms[0]." & btnSearch.ClientID & ".click();event.keyCode = 0; return false;}")  
<2>客户端控件:
 
  1. $addHandler(searchBox, 'keydown', Function.createDelegate(this, onKeydown));   
  2. $addHandler(anotherSearchBox, 'keydown', Function.createDelegate(this,onKeydown));    
  3.   
  4. function onKeydown(e){   
  5.     if(e.keyCode == 13){   
  6.         yourFunction(); //onPopOk(e);   
  7.         e.preventDefault();   
  8.         return false;   
  9.     }   
  10.     return true;   
  11. }  
一定要取消回车键的默认操作,否则默认的按钮还会在执行了button按钮后继续执行。如此就得不到需要的效果. Enjoy your dnnsun journey!
Popular tags: ClientAPI, 模块开发
Previous Entry: 推荐系列:Scheduler,Reset skin等(2008年第2期)
Next Entry: 拥抱PNG(如何在DNN应用PNG格式图象)

Comments

Was it good for you, too? Join the discussion »

leave a reply

About the author
Baldwin's Status
 Contact Me
Baldwin Sun
Senior Developer for dnn solution & founder of SunBlog module...
网站主页
dnnsun
最新评论
  1. Re: "暴力"解决DNN无法登陆的问题

    你好 有个问题 我改了登录界面后能登录 但是一点注册 就跳到了HOME页 这个怎么解决

    --zl24622

  2. Re: 你的dnn站点慢了么?

    需要你把旁边的checkbox勾选上再执行 :)

    --Baldwin

  3. Re: 你的dnn站点慢了么?

    为什么,我将你的代码copy到host>sql中去执行之后,报错呢,语句是不是有问题哦?

    --claire

  4. Re: 剖析DNN架构-开篇之作

    很好

    --vling83

  5. Re: SunBlog更新:增加3D Tag Clouds插件

    在以上评论已说明, SunBlog已经是一个成熟的商业模块,如果需要授权或下载请邮件联系我们, 感谢你的关注, 我们即将推出一个demo的站点(这周之内).

    --Baldwin

  6. Re: SunBlog更新:增加3D Tag Clouds插件

    这个没地方下载的吗,要怎么才能下载到,谢谢

    --Sun key

  7. Re: SunBlog更新:增加3D Tag Clouds插件

    已经电邮您了,请注意查收

    --sunny0315

  8. Re: 如何添加DNN模块的自定义权限

    你只要设置好该节点即可, 比如:DnnSun.SunBlogNuke.Business.InterfaceController, DnnSun.Modules.SunBlogNuke 其他的请再详细看看本文,我觉得说得蛮清楚的 :)

    --Baldwin

Blog搜索
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
相册库
更多照片请查看相册库
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...
版权声明
本站任何言论仅代表个人观点,与作者所在的公司没有任何关系,所有贴子皆以“现状”提供且没有任何担保,同时也没有授予任何权利。