服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - ASP.NET教程 - asp.net中对象失去焦点时自动提交数据 V2

asp.net中对象失去焦点时自动提交数据 V2

2019-10-09 14:43asp.net教程网 ASP.NET教程

一年多前,Insus.NET有写过一篇 《对象失去焦点时自己动提交数据》,那一篇是依赖Linkbutton来做隐藏提交。是否有不用依赖Linkbutton方法呢? 答案是肯定的

.aspx页只拉一个TextBox控件: 

复制代码代码如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
</form> 
</body> 
</html> 


.aspx.cs页中,首选在Page_Init事件,为TextBox注册OnBlur事件: 

复制代码代码如下:


protected void Page_Init(object sender, EventArgs e) 

this.TextBox1.Attributes.Add("onblur", Page.ClientScript.GetPostBackEventReference(this.TextBox1, "OnBlur")); 


写一个onBlue事件,将替代LinkButton的Click事件: 

复制代码代码如下:


private void OnBlurHandle(string ctrl, string args) 

if (ctrl == this.TextBox1.UniqueID && args == "OnBlur") 

//这里写提交到数据库中 


然后在网页的Page_Load事件,判断是否IsPostBack。 

复制代码代码如下:


protected void Page_Load(object sender, EventArgs e) 

if (IsPostBack) 

var ctrl = Request.Params[Page.postEventSourceID]; 
var args = Request.Params[Page.postEventArgumentID]; 
OnBlurHandle(ctrl, args); 

延伸 · 阅读

精彩推荐