使用JavaScript调用 ASP.NET 服务器端事件

分享于 

3分钟阅读

Web开发

  繁體 雙語

介绍

通常,我们希望使用JavaScript来执行 ASP.NET 服务器端事件。 例如在 TextBox 控件的OnChange JavaScript事件上调用 TextChanged 事件。 实际上可以很容易地完成。

Background

我曾经尝试实现并打开AJAX模式弹出扩展程序对话框,这是我们现有应用程序的一个部分,在单击控件时,我试图实现一个AJAX模式弹。 但是,在表单中有一个文本框,它为 OnPropertyChange 事件绑定了一个JavaScript属性。 文本框实际上是一个日期选取器控件。 如果用户选择日期,那么某些业务逻辑会被触发。 但是,正因为如此,模式弹出控件从未与这里表单一起工作过。 因为每当单击 ImageButton 打开模式对话框时,就会激发 OnPropertyChange 事件并调用 form.submit 方法来打开模式对话框。 所以,情况是我必须避免 form.submit 方法,但要记住业务逻辑仍然相同。

使用代码

为了克服这种情况,我使用了以下代码:

  • GetPostbackEventReference 服务器控件中使用方法对服务器控件进行 register,该控件可以使用客户端回调创建 postback。
Page.GetPostBackEventReference(txt_sssn_dt);
  • 然后,使用 __dPostBack 事件触发日期选取器控件( txt_sssn_dt )的TextChanged 事件。 这个代码被放置在日期选择器JavaScript函数中,并且每次用户从日期选择器中选择日期时都会触发它。
__doPostBack("txt_sssn_dt", "TextChanged");
  • 在用户刚刚想直接输入日期到日期选择器( txt_sssn_dt ) 中时,还需要编写一个简单的JavaScript函数来处理这种情况。 我为此编写了一个名为 DoPostBack()的JavaScript函数。
function DoPostBack()
{
 __doPostBack("txt_sssn_dt", "TextChanged");
}
  • 我在日期选取器控件的OnChange 事件中调用了这个函数。 而且我得到了解决方案。
if(!IsPostback)
{
/...Implementation.../
/.................../
 txt_sssn_dt.Attributes.Add("OnChange", 
 "javascript:return DoPostBack()")
}

演示如何从客户端调用服务器端 ASP.NET 事件,这是一个非常简单的演示。 如果有其他的或者更好的方法来做这个,请分享你的想法。 我可以在 sanjaysantra@hotmail.com。


JAVA  Javascript  Server  asp-net  CAL  event  
相关文章