在DataBind之后运行JavaScript

时间:2013-02-11 21:24:17

标签: javascript asp.net

我有一个ASP.Net Repeater控件,里面有一个Table。我可以在调用MyRepeater.DataBind()后直接运行JavaScript函数吗?我一直在尝试不同的东西,但没有任何东西可以触发JavaScript功能。

由于

4 个答案:

答案 0 :(得分:2)

数据绑定作为Page Lifecycle进程的一部分在回发服务器上发生。换句话说,排除部分postbadks,在发生这种情况时,浏览器中的任何现有DOM都将被销毁。在服务器上构建一个全新的页面并传输到浏览器,以便可以构建和呈现新的DOM。

这意味着你想要在页面的onload事件中运行你的javascript。实现此目标的一种方法是使用ClientScriptManager

答案 1 :(得分:1)

可以使用RegisterStartupScript和RegisterClientScriptBlock方法从服务器端调用Javascript。

http://www.mindfiresolutions.com/Register-clientside-startup-script-from-serverside-code-286.php

答案 2 :(得分:1)

没有。在代码隐藏执行并将页面传递给客户端之前,javascript甚至不会呈现和运行。因此,添加脚本是您在代码隐藏中做的第一件事还是您做的最后一件事(或直接在DataBind()之后),这无关紧要。

使用ClientScriptManager Class时,请查看后面的代码,您会看到在结束</form>标记之前添加动态javascript(尽管仍有可能实现您想要的内容)做,只是用不同的方法)。

答案 3 :(得分:1)

我找到了一个解决方案,不确定它是最干净的方法,但对于我的应用程序的上下文,它可以工作:

我使用:Sys.WebForms.PageRequestManager.getInstance().add_endRequest();

在部分回发后运行了javascript代码

同样,不是最干净但适合我的需求。

感谢您的所有输入