一年多前,Insus.NET有写过一篇 《》,那一篇是依赖Linkbutton来做隐藏提交。是否有不用依赖Linkbutton方法呢? 答案是肯定的。
.aspx页只拉一个TextBox控件:
View Code
.aspx.cs页中,首选在Page_Init事件,为TextBox注册OnBlur事件: 1 <% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %> 2 3 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > 4 5 < html xmlns ="http://www.w3.org/1999/xhtml" > 6 < head runat ="server" > 7 < title ></ title > 8 </ head > 9 < body > 10 < form id ="form1" runat ="server" > 11 < asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox > 12 </ form > 13 </ body > 14 </ html >
View Code
写一个onBlue事件,将替代LinkButton的Click事件: protected void Page_Init( object sender, EventArgs e) { this.TextBox1.Attributes.Add( " onblur ", Page.ClientScript.GetPostBackEventReference( this.TextBox1, " OnBlur ")); }
View Code
private void OnBlurHandle( string ctrl, string args) { if (ctrl == this.TextBox1.UniqueID && args == " OnBlur ") { // 这里写提交到数据库中 } }
然后在网页的Page_Load事件,判断是否IsPostBack。
View Code
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); } }