65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 JavaScript 和 TextBox 的 onblur 事件从客户端调用服务器端代码

starIconstarIconstarIconstarIconstarIcon

5.00/5 (2投票s)

2015年3月6日

CPOL
viewsIcon

16023

downloadIcon

130

使用 JavaScript 和 TextBox 的 onblur 事件从客户端调用服务器端代码

引言

此技巧/窍门将在 textboxonblur 事件发生时,使用 JavaScript 从客户端调用服务器端代码。

背景

在 ASP.NET 中,我们使用 TextBoxAutoPostBack 属性设置为 True 来调用为 TextChanged 事件编写的服务器端代码。每当 TextBox 的值发生更改时,都会调用服务器端代码。

此技巧将在 TextBoxonblur 事件上调用服务器端代码,其 AutoPostBack 属性设置为 False

Using the Code

代码分为三个部分

  1. 服务器端代码
  2. 客户端 JavaScript 代码
  3. HTML 部分

首先,我们将查看如下所示的服务器端代码

//C# code

protected void Page_Load(object sender, EventArgs e)
{
    string parameter = Request["__EVENTARGUMENT"];
    if (parameter == "")
        Changed();
}
private void Changed()
{
    TextBox2.Text = (Convert.ToInt32(TextBox2.Text)+1).ToString();
}

代码的第二部分是 JavaScript 代码块

 <script type="text/javascript">
     function CallServerSide(controlid) {
         setTimeout(__doPostBack(controlid, ''), 0); 
     }
 </script>

代码的第三部分是 HTML 内容

 <form id="form1" runat="server">
 <asp:ScriptManager ID="ScriptManager1" runat="server" />
 <asp:UpdatePanel  ID="UpdatePanel2"  runat="server">
     <ContentTemplate>
         <div>
             <asp:TextBox ID="TextBox1" runat="server" 
             onblur="CallServerSide(this.id);"></asp:TextBox>
             <asp:TextBox ID="TextBox2" runat="server" 
             Text="1"></asp:TextBox>
         </div>
     </ContentTemplate>
  </asp:UpdatePanel>
  </form>
© . All rights reserved.