来自asp.net C#page的外部javascript文件

时间:2011-04-28 09:45:39

标签: c# javascript asp.net

我有一些用外部javascript文件编写的javascript函数。 我已将该文件包含在我的asp.net页面部分中。 但是我无法理解如何从代码隐藏文件中调用函数。 例如,我想在文本框的onkeypress事件上调用某个函数'tacount'。我怎么可能这样做?

3 个答案:

答案 0 :(得分:2)

您无法从client side代码中调用server side个功能。

可以发出javascript来从服务器端代码调用这些函数,但这可能会非常混乱。

不要将javascript函数附加到服务器端事件,而是在客户端执行此操作。

使用jQuery等库将事件附加到客户端的文本框中。

答案 1 :(得分:1)

在所有可以通过代码隐藏的javascript调用中查看here,但基本上您只需要在代码中执行以下操作即可调用以下内容:

ScriptManager.RegisterStartupScript(this,this.getType(),"tacount",'tacount();',true);

这将在客户端完成回发后触发,但建议仅从客户端调用javascript。

修改

您的文件位于外部javascript文件中这一事实并不重要,因为浏览器会将其称为内联javascript。

您所要做的就是在设计师代码中照常使用该功能,即

<asp:TextBox runat="server" onkeypress='return tacount();'/>

答案 2 :(得分:0)

如果要从Code Behind文件中调用JavaScript函数,则应使用@ TBohnen.jnr建议的代码,即:

ScriptManager.RegisterStartupScript(this,this.getType(),"fnMyFunctionNameFromServiceSide_tacount",'tacount();',true);

但是,您应该注意,fnMyFunctionNameFromServiceSide_tacount不应出现在您的标记代码或任何包含的javascript文件中。

如果要从外部包含的javascript文件调用javascript函数,请使用以下代码:

<asp:TextBox id="myTextBox" runat="server" onkeypress="javascript: return tacount();"/>

但是,如果上述内容对您不起作用,则表示无法找到该功能。在这种情况下,我建议您使用FireBug找到找不到javascript函数的确切原因。可能是函数本身不存在或者函数本身内部存在一些javascript错误。

希望这有帮助。