0

我的 C# 中有一段代码在单击按钮时执行,如下所示:

protected void LoadButton(object sender, EventArgs e)
{
    LoadDoc();
    ReadXML();

    ScriptManager.RegisterClientScriptBlock(loadXML, this.GetType(), "FormMath", "FirstCalculation();", true);
}

最后一行,我想调用一个名为“FirstCalculation”的 JS 函数。问题是 FirstCalculation 不存在于 default.aspx 文件中,而是存在于我们将调用 external.js 的外部 js 文件中。我不能(不应该)将 FirstCalculation 从 external.js 移开,但我仍然需要在单击此按钮时调用它。当然,我还需要能够调用一些 ASP。

最终目标是让我能够在单击按钮时按该顺序调用 ASP 函数和 Javascript 函数。

另外值得注意的是,我不知道 RegisterClientScriptBlock 调用中的第三个参数应该是什么。我从不同的资源中复制了它,所以如果需要特定的东西,那可能是一件值得关注的事情。

编辑:我遇到的许多其他示例似乎都引用了 default.aspx 页面中的代码,这就是我挂断的地方,因为它不在同一个文件中。

4

1 回答 1

2

而不是使用RegisterClientScriptBlock使用RegisterStartupScript

这将确保您注入的 javascript 将出现在页面底部 - 因此它将位于您的 .js 文件之后。那么应该可以正常工作..

有关更多信息,请参见此处:MSDN 上的 RegisterStartupScript

此外 - 第三个参数 ( true) 告诉您的代码将<script>标签包含在您注入的任何 javascript 中;也就是说,RegisterClientScriptBock&RegisterStartupScript将首先注入<script>标签,然后将您的字符串放在它们的中间。你需要这个true在你的情况下。如果您正在注入,您会将其设置为 false"<script>FirstCalculation();</script>"

于 2013-07-16T19:04:16.663 回答