【问题标题】:Unable to call JavaScript Function from code behind无法从后面的代码调用 JavaScript 函数
【发布时间】:2012-01-10 22:51:50
【问题描述】:

我正在 ASP.Net 环境中构建应用程序,我想从 C# 中的代码调用 JavaScript 函数。

我尝试使用 ScriptManager.RegisterStartupScript() 方法,它遇到错误说“当前上下文中不存在名称 'ScriptManager'”,我已经包含命名空间 System.Web.UI,但仍然出现此错误。

知道怎么会这样吗?还是有更好的解决方法,而不是使用 ScripManager 从代码后面触发 JavaScript 函数?

先谢谢你了。

【问题讨论】:

  • 您在后面的代码中究竟从哪里(从什么事件处理程序)调用ScriptManager.RegisterStartupScript 方法?

标签: c# javascript asp.net scriptmanager


【解决方案1】:
ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(GetType(), "GenerateMatrixText", script, true);

【讨论】:

  • 如果这不起作用,那么可能是安装的 ajax 版本有问题
【解决方案2】:

在 MSDN 上阅读有关 RegisterStartupScript http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx 的更多信息

还要确保页面上有一个表格。如果页面上没有表单,则脚本将无法执行。

【讨论】:

  • 我猜这可能是由于页面上没有 FORM 而是用户 crontrol,我使用了 Page.ClientScript.RegisterStartUpScript() 并且 JavaScript 函数不起作用。有什么解决方法吗?
【解决方案3】:

你的问题不清楚。您想在代码背后的代码执行时同时调用 javascript 函数吗?如果是这种情况,那么这是不可能的。 Javascript 在客户端运行,后面的代码在服务器端运行。一个控件要么是客户端,要么是服务器端,不能同时在两边。

ScriptManager.RegisterStartupScript 所做的是,在您的浏览器上加载文档时,它会在您的页面底部添加一个脚本块。这将允许您从页面的 javascript 代码中调用新添加的 javascript 代码。这允许您在后端创建自定义 javascript 代码并将其推送到页面加载。

如果还有其他情况,请澄清。

【讨论】:

    【解决方案4】:

    试试这个,

    Page.RegisterStartupScript("some_name","javascript function enclosed with script tag")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多