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





5.00/5 (2投票s)
使用 JavaScript 和 TextBox 的 onblur 事件从客户端调用服务器端代码
引言
此技巧/窍门将在 textbox
的 onblur
事件发生时,使用 JavaScript 从客户端调用服务器端代码。
背景
在 ASP.NET 中,我们使用 TextBox
的 AutoPostBack
属性设置为 True
来调用为 TextChanged
事件编写的服务器端代码。每当 TextBox
的值发生更改时,都会调用服务器端代码。
此技巧将在 TextBox
的 onblur
事件上调用服务器端代码,其 AutoPostBack
属性设置为 False
。
Using the Code
代码分为三个部分
- 服务器端代码
- 客户端 JavaScript 代码
- 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>