c# - 如何在 ScriptManager.RegisterStartupScript 中使用外部 js 文件?

标签 c# javascript scriptmanager

我有一个位于更新面板上的控件。我希望我的 javascript 代码在每次更新 updatePAnel 时运行。

我用的是这样的:

ScriptManager.RegisterStartupScript(this, GetType(), "my_script", "runFunction();", true);

问题是我的 js 代码很大,我想将它放在 js 文件中并从文件中使用它。我应该在我的代码中更改什么?

最佳答案

您可以使用 ScriptManager.RegisterClientScriptInclude方法:

ScriptManager.RegisterClientScriptInclude(
    updatePanel,
    updatePanel.GetType(),
    "a_key",
    "myScript.js"
);

请注意,此方法会在 HTML 的早期呈现您的脚本,因此您的脚本不应依赖于脚本在页面上呈现的顺序。

有关此方法的更多信息,请访问 http://msdn.microsoft.com/pt-br/library/bb337005.aspx

但是如果您的脚本依赖于其他脚本,更好的选择是使用 ScriptManager.RegisterStartupScript方法,但不是将脚本主体作为参数传递,而是传递整个 <script>标记您脚本的地址:

ScriptManager.RegisterStartupScript(
    updatePanel,
    updatePanel.GetType(),
    "a_key",
    "<script type='text/javascript' src='my_script.js'></script>",
    false
);

注意最后一个参数,它设置了addScriptTags标志,设置为 false,允许您使用 src 呈现整个标签定义的属性。

关于c# - 如何在 ScriptManager.RegisterStartupScript 中使用外部 js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9930352/

相关文章:

asp.net - 'Sys.WebForms.PageRequestManager' 为空或不是对象

c# - 捕获异常并保存到 SQL Server

c# - 在 Word 'Save As' 对话框中拦截保存事件

javascript - 尝试在按钮中使用数据详细信息但出现意外错误

javascript - Bootstrap DatePicker - 将日期设置为明天

javascript - ASP.Net ScriptManager 和 UpdatePanel 在回发后忽略 javascript

c# - 用户已通过身份验证,但访问 token 在哪里?

C# 将 VBA 宏转换为具有自定义 RGB 颜色的 C#

javascript - 将正则表达式放入字符串中

c# - 如何让 ScriptManager 与 ScriptmanagerProxy 一起工作