整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

ASP.NET Web Forms-事件

件句柄是一种针对给定事件来执行代码的子例程。


ASP.NET - 事件句柄

请看下面的代码:

<%

lbl1.Text="The date and time is " & now()

%>

<html>

<body>

<form runat="server">

<h3><asp:label id="lbl1" runat="server" /></h3>

</form>

</body>

</html>

上面的代码将在何时被执行?答案是:"不知道..."。


Page_Load 事件

Page_Load 事件是 ASP.NET 可理解的众多事件之一。Page_Load 事件会在页面加载时被触发, ASP.NET 将自动调用 Page_Load 子例程,并执行其中的代码:

实例

<script runat="server">

Sub Page_Load

lbl1.Text="The date and time is " & now()

End Sub

</script>

<html>

<body>

<form runat="server">

<h3><asp:label id="lbl1" runat="server" /></h3>

</form>

</body>

</html>

演示实例 »

注释:Page_Load 事件不包含对象引用或事件参数!


Page.IsPostBack 属性

Page_Load 子例程会在页面每次加载时运行。如果您只想在页面第一次加载时执行 Page_Load 子例程中的代码,那么您可以使用 Page.IsPostBack 属性。如果 Page.IsPostBack 属性设置为 false,则页面第一次被载入,如果设置为 true,则页面被传回到服务器(比如,通过点击表单上的按钮):

实例

<script runat="server">

Sub Page_Load

if Not Page.IsPostBack then

lbl1.Text="The date and time is " & now()

end if

End Sub

Sub submit(s As Object, e As EventArgs)

lbl2.Text="Hello World!"

End Sub

</script>

<html>

<body>

<form runat="server">

<h3><asp:label id="lbl1" runat="server" /></h3>

<h3><asp:label id="lbl2" runat="server" /></h3>

<asp:button text="Submit" onclick="submit" runat="server" />

</form>

</body>

</html>

演示实例 »

上面的实例仅在页面第一次加载时显示 "The date and time is...." 消息。当用户点击 Submit 按钮是,submit 子例程将会在第二个 label 中写入 "Hello World!",但是第一个 label 中的日期和时间不会改变。

件处理

一 事件源:任何一个HTML元素(节点)body div button p a h1

二 事件:你的操作

鼠标点击、页面或图像载入、鼠标悬浮于页面的某个热点之上、在表单中选取输入框、确认表单、键盘按键

鼠标:

click 单击

dblclick 双击

contextmenu(在body) 鼠标右键菜单(火狐浏览器不支持,IE和360支持)


mouseover 放上(移入)

mouseout 离开(移出)

mousemove 移动

mouseup 抬起

mousedown 按下

mouseenter 放上(移入)

mouseleave 离开(移出)


mouseover/mouseout与mousenter/onmouseleave区别: mouseover/mouseout不会参与冒泡, mousenter/onmouseleave参与冒泡

键盘:

keypress 键盘事件

keyup 抬起

keydown 按下

文档:

load 加载完毕

error 加载失败

unload 关闭

beforeunload 关闭之前

表单:

focus 焦点

blur 失去焦点

submit 提交事件

change 改变

其他:

scroll 滚动

select 选择

新增事件

oninput 事件在用户输入时触发。该事件在 <input> 或 <textarea> 元素的值发生改变时触发。

三 事件处理程序

第一种: 格式:<tag on事件="事件处理程序">

<a href="htp://www.baidu.com/" onclick="javascript:alert('You have Clicked the link!')">MYlinker</a>

注意:"javascript:"可以省略



第二种: 格式:<tag on事件="事件处理函数">

<a href="htp://www.baidu.com/" onclick="Myclick()">MYlinker</a>
<script type="text/javascript">
function Myclick(){
alert('You have Clicked the link!');
}
</script>

注意:事件处理函数不分前后



第三种:

格式 <script type="text/javascript">

对象.on事件=事件处理程序

</script>

<script>
window.onload=function (){
var oBtn=document.getElementById('btn1');
oBtn.onclick=function (){
alert('a');
};
};
</script>

注意: window.onload的意义,当页面加载的时候可以调用某些函数;

对于第二种格式, 不需要window.onload语句, 而第三种格式必须要使用window.onload语句(也可以将事件处理程序放到DOM文档底部);

四、实例

屏蔽鼠标右键菜单(火狐浏览器不支持,IE和360支持)

<body oncontextmenu="return false;">
</body>
<body oncontextmenu="alert('010-123456789');return false">
</body>
<body oncontextmenu="return test()">
<script>
function test(){
alert('010-123456789');
return false;

</script>
</body>

兼容性最好的版本见 javascript|实例|屏蔽鼠标右键

自动将表单内的英文转换成大写:

<input type="text" onkeyup="if(this.value!=this.value.toUpperCase()) this.value = this.value.toUpperCase() "/>

浏览器事件

浏览器事件指载入文档直到该文档被关闭期间的浏览器事件,如浏览器载入文档事件onload、关闭该文档事件onunload、

浏览器失去焦点事件onblur、获得焦点事件onfocus等。

<script type="text/javascript">
<!--
window.onload = function ()
{
var msg="\nwindow.load事件 : \n\n";
msg+=" 浏览器载入了文档!";
alert(msg);
}
window.onfocus = function ()
{
var msg="\nwindow.onfocus事件 : \n\n";
msg+=" 浏览器取得了焦点!";
alert(msg);
}
window.onblur = function ()
{
var msg="\nwindow.onblur事件 : \n\n";
msg+=" 浏览器失去了焦点!";
alert(msg);
}
window.onscroll = function ()
{
var msg="\nwindow.onscroll事件 : \n\n";
msg+=" 用户拖动了滚动条!";
alert(msg);
}
window.onresize = function ()
{
var msg="\nwindow.onresize事件 : \n\n";
msg+=" 用户改变了窗口尺寸!";
alert(msg);
}
//-->
</script>

卸载事件使用:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> 卸载事件 </title>
<script type="text/javascript">
window.onunload = onunload_message;
function onunload_message(){
alert("您确定离开该网页吗?");
}
</script>
</head>
<body>
欢迎学习JavaScript。
</body>
</html>



多数浏览器内部对象都拥有很多事件,下面将以表格的形式给出常用的事件及何时触发这些事件。

JavaScript的常用事件

onabort 对象载入被中断时触发

onblur 元素或窗口本身失去焦点时触发

onchange 改变<select>元素中的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生过改变时触发

onclick 单击鼠标左键时触发。当光标的焦点在按钮上,并按下回车键时,也会触发该事件

ondblclick 双击鼠标左键时触发

onerror 出现错误时触发

onfocus 任何元素或窗口本身获得焦点时触发

onkeydown 键盘上的按键(包括Shift或Alt等键)被按下时触发,如果一直按着某键,则会不断触发。当返回false时,取消默认动作

onkeypress 键盘上的按键被按下,并产生一个字符时发生。也就是说,当按下Shift或Alt等键时不触发。如果一直按下某键时,会不断触发。

onkeyup 释放键盘上的按键(键盘上所有按键)时触发

onload 页面完全载入后,在Window对象上触发;所有框架都载入后,在框架集上触发;

<img>标记指定的图像完全载入后,在其上触发;或<object>标记指定的对象完全载入后,在其上触发

onmousedown 单击任何一个鼠标按键时触发

onmousemove 鼠标在某个元素上移动时持续触发

onmouseout 将鼠标从指定的元素上移开时触发

onmouseover 鼠标移到某个元素上时触发

onmouseup 释放任意一个鼠标按键时触发

onreset 单击重置按钮时,在<form>上触发

onresize 窗口或框架的大小发生改变时触发

onscroll 在任何带滚动条的元素或窗口上滚动时触发

onselect 选中文本时触发

onsubmit 单击提交按钮时,在<form>上触发

onunload 页面完全卸载后,在Window对象上触发;或者所有框架都卸载后,在框架集上触发

Object 对象

Object 对象表示一个 HTML <object> 元素。

<object> 元素用于在网页中包含对象,比如:图像、音频、视频、Java applet、ActiveX、PDF、Flash 等。

访问 Object 对象

您可以使用 getElementById() 来访问 <object> 元素:

var x = document.getElementById("myObject");

创建 Object 对象

您可以使用 document.createElement() 方法来创建 <object> 元素:

var x = document.createElement("OBJECT");

Object 对象属性

属性描述
alignHTML5 中不支持。使用 style.cssFloat 替代。 设置或返回对象相对于周围文本的对齐方式。
archiveHTML5 中不支持。设置或返回一个用于实现对象存档功能的字符串。
borderHTML5 中不支持。使用 style.border 替代。 设置或返回围绕对象的边框。
codeHTML5 中不支持。 设置或返回文件的 URL,该文件包含已编译的 Java 类。
codeBaseHTML5 中不支持。 设置或返回组件的 URL。
codeTypeHTML5 中不支持。
data
declareHTML5 中不支持。
form返回对对象的父表单的引用。
height设置或返回对象的高度。
hspaceHTML5 中不支持。使用 style.margin 替代。 设置或返回对象的水平外边距。
name设置或返回对象的名称。
standbyHTML5 中不支持。 设置或返回在加载对象时的消息。
type设置或返回通过 data 属性下载的数据的内容类型。
useMap
vspaceHTML5 中不支持。使用 style.margin 替代。 设置或返回对象的垂直外边距。
width设置或返回对象的宽度。

标准属性和事件

Object 对象同样支持标准 属性 和 事件。

如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!