我有一个ASP.Net Repeater控件,里面有一个Table。我可以在调用MyRepeater.DataBind()
后直接运行JavaScript函数吗?我一直在尝试不同的东西,但没有任何东西可以触发JavaScript功能。
由于
答案 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();
同样,不是最干净但适合我的需求。
感谢您的所有输入