有没有办法从C#后面的代码中点击按钮调用javascript函数?所以基本上我有一个注册表单,当你点击按钮,然后在后面的代码中处理所有数据,并提交表单。但是我需要执行一些javascript,我需要它在按钮点击和后面的代码中执行。
如下所示:
protected void btnDoRegister_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
C# code is here doing form processing
// Now I need to Execute javascript here.
}
这是可能的,如果是这样的话,我将如何去做?
谢谢!
答案 0 :(得分:3)
protected void btnDoRegister_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
C# code is here doing form processing
// Now I need to Execute javascript here.
string script = "<script type=\"text/javascript\"> functionToExecute(); </script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", script);
}
答案 1 :(得分:0)
我有两种方式可以看到我的头脑:
首先是在javascript端进行一些AJAX轮询。它可以通过rest api或其他东西轮询它需要进行的更改,并且您的c#代码可以更新该更改列表。
第二种是使用javascript socket io实现并维护持久连接。
我强烈推荐第一个,但第二个是根据您的环境选择。
答案 2 :(得分:0)
由于javascript在客户端(浏览器)上执行,因此无法在服务器上执行javascript。你可以在回发后执行javascript,但很少需要它。通常,Javascript在客户端执行,并在服务器接收到请求并在服务器上执行之前执行。 这样你就有两个绑定了btnDoRegister的事件,一个在客户端执行,而ohter在服务器上执行。
在Page_Load上用按钮绑定javascript事件。
代码背后
btnDoRegister.Attributes.Add("onclick", "funForButton();");
在aspx HTML中
<script language="javascript" type="text/javascript">
function funForButton()
{
alert("About to send request to server");
}
</script>
您已有的服务器事件
protected void btnDoRegister_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
C# code is here doing form processing
// Now I need to Execute javascript here.
}
答案 3 :(得分:0)
如果我理解正确,你想点击按钮,让一些javascript做它的事情,然后返回服务器端,做C#代码并完成它执行一些javascript(在客户端再次)。
让我们假设我做对了,那么你将不得不做三件事。
首先,添加OnClientClick =“return yourfunction();”到您的aspx页面中的按钮。根据您是否要执行服务器端代码,请确保javascript中的yourfunction()返回false或true。
然后在btnDoRegister_Click中编写c#代码。最后,在会话变量中添加一个javascript调用,并在aspx代码中使用它。
例如: C#
String newScript = ""
If (Session("yourscript") = Nothing) { Session("yourscript") = "" }
newScript = String.Format("<script type=text/javascript>")
newScript = String.Format("{0}yoursecondscript()", newScript)
newScript = String.Format("{0}</script>", newScript)
Session("yourscript") = newScript
然后在您的aspx页面中添加页面中的某个位置:
<%=Session("yourscript")%>
如果您使用的是Ajax,请记住放置它的位置,因为不会刷新整个页面。在这种情况下,请将其放在更新帧内。
现在的顺序是: - 点击 - &gt; yourfunction() - &gt; C#代码 - &gt; yoursecondscript
希望这会有所帮助......