我的C#中有一段代码,按下按钮就会执行:
protected void LoadButton(object sender, EventArgs e)
{
LoadDoc();
ReadXML();
ScriptManager.RegisterClientScriptBlock(loadXML, this.GetType(), "FormMath", "FirstCalculation();", true);
}
在最后一行,我想调用一个名为'FirstCalculation'的JS函数。问题是FirstCalculation不存在于default.aspx文件中,而是存在于外部js文件中,我们称之为external.js。我不能(不应该)将FirstCalculation从external.js移开,但是我仍然需要在这个单击按钮上调用它。当然,我也需要能够调用一些ASP。
最终目标是,我可以在按钮点击时按顺序调用ASP函数和Javascript函数。
另外值得注意的是,我不知道在RegisterClientScriptBlock调用中第三个参数应该是什么。我从不同的资源中复制了它,所以如果需要特定的东西,可能需要考虑一下。
编辑:我遇到的很多其他示例似乎都是引用default.aspx页面内的代码,而这就是我挂断的地方,因为它不在同一个文件中。
答案 0 :(得分:2)
而不是使用RegisterClientScriptBlock
使用RegisterStartupScript
这将确保您的注入的javascript将出现在页面底部 - 因此它将在您的.js文件之后。应该工作正常..
有关详细信息,请参阅此处:RegisterStartupScript On MSDN
此外 - 第3个参数(true
)告诉您的代码在您注入的任何javascript中包含<script>
标记;也就是说,RegisterClientScriptBock
&amp; RegisterStartupScript
将首先注入<script>
标记,然后将字符串放在其中间。在您的情况下,您需要true
。如果您正在注入"<script>FirstCalculation();</script>"