本网站已多次讨论此问题,但我找不到解决问题的方法。
我已执行以下步骤。
1。创建了一个JS函数。
function showModal() {
alert("called");
}
2。在.aspx文件中添加了一个脚本管理器
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
第3。在.cs文件中创建了一个方法
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
protected void register_user(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);
log.Debug("register_user is called");
}
但它没有调用JS函数。
答案 0 :(得分:0)
可能是因为,你还没有关闭你的javascript函数:
function showModal() {
alert("called");
}
或者你也可以试试这个:
替换你的这一行:
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);
与
Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "showModal(); ", true); // correct
答案 1 :(得分:0)
你混合了这么多东西。
如果您想将Code Behind中的javascript添加到您的html中。这应该位于某个全球事件Page_Load
或PreRender
。
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "YourJavascriptCode", true);
如果要从AJAX调用中调用aspx中的方法,则应该返回响应
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static string register_user(object sender, EventArgs e)
{
//you can return a class->Json
return stuff;
}
如果您想在客户端执行javascript,请单击按钮。我想你想要这个!
YourButton.Attributes["onclick"]= "javaScriptFunction()";
//if you want to not execute server side
YourButton.Attributes["onclick"]= "javaScriptFunction(); return false";
这是将javascript函数添加到asp按钮的最简单方法。
<asp:Button ID="RegisterBtn" runat="server" Text="Register" OnClientClick="showModal()" onclick="register_user"/>
答案 2 :(得分:0)
首先,我不认为从aspx.cs调用Js函数是个好主意。
无论如何,从您的代码段开始,只需更改为:
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "showModal()", true);
请注意第3个参数:"showModal()"
而且,你的JS函数“showModal()”,单击此按钮是否可以正常工作? <input type="button" value="Submit" onclick="showModal();"/>
答案 3 :(得分:0)
对我有用的是:
而不是 -
input[name="name"]
我添加了 -
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);
并且有效。
答案 4 :(得分:0)
添加名称空间
使用System.Web.UI;
替换你的这一行:
Page.ClientScript.RegisterStartupScript(this.GetType(),“showModal”,“javascript:showModal();”,true);
与
ScriptManager.RegisterStartupScript(this,this.GetType(),“Message”,“showModal();”,true);
一切正常