如题:如何在后台给前台页的 <body> 添加onKeyDown= "ShowInfo() "事件,最终成为
< body MS_POSITIONING= "GridLayout " onKeyDown= "ShowInfo() ">
着急啊。
------解决方案--------------------------------------------------------
<body id= "bd " runat=server>
bd.Attributes.Add( "onKeyDown ", "ShowInfo() ")
------解决方案--------------------------------------------------------
后代码定义
Protected WithEvents bd As System.Web.UI.HtmlControls.HtmlGenericControl
or
System.Web.UI.HtmlControls.HtmlGenericControl bd;
------解决方案--------------------------------------------------------
onKeyDown= "ShowInfo() "
=====
这种叫做 “页面声明方式”
window.document.body.onkeydown = function() { ShowInfo(); };
window.document.body.onkeydown = ShowInfo;
=========
这叫“代码绑定方式“
就像asp.net服务器控件的事件绑定语法一样,他们也支持类似的两种方式 ...
另外对于“代码绑定方式” body.onxxxx 你可以直接指定在 window.document.onxxxx
某些支持事件如 onload 可以指定在 window 中
------解决方案--------------------------------------------------------
bodyRunAtServer.Attributes.Add( "onKeyDown ", "ShowInfo(); ");
=====
此中的方式,适合【单页】需求,
对于在基类中定义,系统应用到子类页面的,只有通过输出 js 动态绑定事件,
当然假如,你的 .aspx 页面内容全部是动态的通过 .aspx.cs 构建的,也可以了,因为此时 body 已经由你在 PageBase 控制了,但是似乎没有人会采取此种“吃力不讨好”的设计方案吧 :)