如何从c#调用javascript函数

时间:2010-04-22 18:55:21

标签: asp.net javascript events

我喜欢从c#调用JavaScript函数。任何人都可以给我代码片段。

更多细节......

我有一个asp.net页面,它有一个asp按钮。当我点击那个按钮时,我想调用javascript函数。

明智的......

在我的asp.net页面中,

<button id="save" onclick="i like to call a method resides in asp.net page'>Save</button>

越来越多的细节...... 当点击asp.net按钮时,我喜欢执行一些服务器端操作,然后喜欢从那里调用一个javascript函数...

7 个答案:

答案 0 :(得分:9)

对于asp:button您使用OnClientClick

<asp:Button id="myid" runat="server" OnClientClick="alert('test')" />

答案 1 :(得分:6)

假设您在ASP.NET(包括MVC)中进行编码,调用JavaScript函数意味着将JavaScript中的调用嵌入到ASPX代码中,如下所示:

<script type="text/javascript">
  doSomething();
</script>

您确实有机会将信息从C#传递给JS调用,就像您可以使用任何其他代码更改ASPX的结果一样:

<script type="text/javascript">
  doSomething("<%= GetSomeTextFromCSharp();  %>");
</script>

这实际上扩展了“从C#调用JavaScript”的定义。您正在做的是让您的C#/ ASPX代码生成HTML / JavaScript,然后浏览器将其解释为任何其他HTML / JS(无论它是如何生成的)。

也许你可以解释一下你还想做些什么。

答案 2 :(得分:4)

我尝试使用此代码,它可以帮助我查看是否有帮助

1)

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "alert('Informations');", true); 

另一种方法是调用在源页面中编写的javascript方法

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "xyz();", true); 

答案 3 :(得分:3)

您无法从ASP.NET C#代码隐藏中“调用”Javascript函数。您可以将其他Javascript写入网页。当页面被发送回用户并且Javascript存在时,您的代码隐藏已经消失。您可以写出文字或做一个Response.Write()

Response.Write("<script language='javascript'>alert('Hellow World');</script>");

答案 4 :(得分:1)

Sarathi,根据您最近的更新,目前尚不清楚您是否需要任何C#互动。您的<button>似乎是严格的客户端(即:HTML),其中没有ASP.NET交互。要调用JavaScript函数,您需要将函数调用附加到按钮标记的onclick属性:

<button id="save" onclick="mySaveFunction();'>Save</button>

请注意,只需要在浏览器的当前页面的加载堆栈中定义mySaveFunction()。这意味着它可以在以下任何一个中定义:

  • 包含<button>
  • 的ASPX页面
  • 当前ASPX页面的母版页
  • 当前ASPX页面加载的一个用户控件(或MVC部分)
  • 由上述其中一个加载的外部JavaScript文件。

最后,我想重申一下,没有特别针对此问题的C#/ ASP.NET特定内容。您可以对任何语言/框架执行相同的操作,包括静态HTML文件。您的问题似乎完全取决于JavaScript。

答案 5 :(得分:1)

对于窗口对象:
http://msdn.microsoft.com/en-us/library/ms536420%28VS.85%29.aspx

window.execScript

对于页面pbject:
http://msdn.microsoft.com/en-us/library/dfbt9et1%28v=VS.71%29.aspx

的RegisterClientScriptBlock

RegisterOnSubmitStatement

的RegisterStartupScript

等等......

答案 6 :(得分:1)

你可以从页面后面的代码中调用javascript函数..例如你在javasript中有closewindow函数定义部分..如果你想执行该函数,你可以在代码页面后面的任何点击事件中编写以下编码。< / p>

ClientScript.RegisterClientScriptBlock(GetType(), "close", "<script language=javascript>Closewindow();</script>", false);