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

  .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);

  }

  }