繁体   English   中英

使用asp.net中的codebehind函数执行客户端javascript函数

[英]execute clientside javascript function using codebehind function in asp.net

我在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版)来构建新项目是明智的,因此,我正在寻找一个等效的解决方案。

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

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

将执行名为ClientSideFunction()的函数,您可以保留已在页面上注册的必要js函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM