2011-01-20 59 views
3

嗨 我只是想知道为什么有些人建议RegisterStartupScript()来调用客户端js,而一些建议RegisterClientScriptBlock()。ScriptManager.RegisterStartupScript()和ScriptManager.RegisterClientScriptBlock()之间有什么区别,因为两者都做同样的事情?

请让我清楚这两者之间的区别是什么,因为他们做相同的操作,使用js语句调用,以及哪一个更好,如果我只使用js语句像alert,从代码隐藏返回确认。

回答

15

RegisterClientScriptBlock方法将客户端脚本插入到Page对象的<form runat="server">元素的开始标记的正下方。代码无法访问表单的任何元素,因为那时候元素还没有被实例化。

RegisterStartupScript方法在Page对象的<form runat="server">元素的结束标记之前插入指定的客户端脚本。代码可以访问任何表单的元素,因为在那个时候,元素已经被实例化了。选择使用哪种方法实际上取决于您希望在呈现页面时浏览器运行脚本的“顺序”。

如果您想要注册js-functions并使用RegisterStartupScript,如果您想要调用这些功能或想要访问页面上的控件,通常您会使用RegisterClientScriptBlock

欲了解更多信息,请看MSDN

+0

页面对象元素的开始标记=

标记。 – 2011-01-20 11:06:34

相关问题