【问题标题】:execute clientside javascript function using codebehind function in asp.net使用 asp.net 中的函数背后的代码执行客户端 javascript 函数
【发布时间】:2010-01-04 21:32:15
【问题描述】:

我一直在 ASP.NET 2.0 项目中使用 Anthem.NET 进行一些辅助项目,并且对这个框架独有的一个巧妙的功能有疑问。我曾使用 Telerik 和 Microsoft ASP.NET AJAX 框架,并且能够在缺少页面(服务器端)接缝的代码中的“ajaxified”控件中执行 JavaScript 函数。

可以在此处找到国歌示例: http://anthem.talloaksoftware.com/InvokeClientSideFunctionAfterCallBack.aspx?1

基本上,您使用 Ajax 更新面板(在 Anthem 框架中)包装一个文本框和一个按钮,然后在代码隐藏(或内联代码)页面中,您可以在回调完成后执行一个 javascript 函数。但是,您的服务器端代码实际上指定了将运行的 javascript 代码。

示例: 以下代码在单击按钮时执行,在向服务器执行 ajax 请求后,执行服务器端指定的 JavaScript 函数。

Anthem.Manager.AddScriptForClientSideEval("ClientSideFunction();");

所以,只要 JavaScript 函数“ClientSideFunction()”存在,它就会在回调完成后执行。我可以立即看到包含 jQuery 和利用此功能将如何形成一个非常有趣的组合。代码仍然可以用传统的回发模型编写,但可以在服务器端代码执行后调用 JavaScript 代码。这将允许服务器端代码使用 jQuery 内置函数“动画化” HTML 对象。

我的问题是,如何使用 .NET Framework 3.5 中内置的 ASP.NET AJAX 3.5 复制此行为?它可以像 Anthem.NET 框架提供的那样轻松复制吗?

Anthem 不再是一个活跃的项目(在 sourcefourge 上),所以我觉得使用受支持和流行的 ASP.NET AJAX 框架(尤其是 4.0 即将推出)构建新项目是明智的,所以我正在寻找一个等效的解决方案.

【问题讨论】:

    标签: asp.net javascript jquery ajax callback


    【解决方案1】:

    真的很简单,当更新面板更新时(在方法 .Update() 之前),您需要在页面上然后在服务器端有一个 ScriptManager ,只需使用:

    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "uniqueJSBlockName", "ClientSideFunction();", true);
    

    会执行ClientSideFunction()这个函数,你可以持有页面上已经注册的必要的js函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多