【问题标题】:Call a Javascript function from aspx从 aspx 调用 Javascript 函数
【发布时间】:2016-11-25 16:20:40
【问题描述】:
来自 aspx.cs 的代码:
.......
button.OnClientClick = "onButtonClick(this)";
.....
Javascript中的函数(写在aspx文件中):
<script>
function onButtonClick(event) {
....
}
</script>
“程序”甚至没有进入脚本。
【问题讨论】:
标签:
javascript
c#
asp.net
onclick
【解决方案1】:
你在哪里调用你的 button.OnClientClick 分配?如果它在页面加载或按钮单击事件中,它应该可以工作。如果您在 ajax 方法中调用它,则可能会在分配后呈现按钮,所以这可能是您的问题。
protected void Page_Load(object sender, EventArgs e)
{
Button1.OnClientClick = "clicky(this)";
}
在 .aspx 页面上,就在结束标记之前:
<script>
function clicky(e) {
alert("click");
}
</script>
你应该可以看到 onclick="clicky(this)";当您在运行页面时检查 Chrome 开发人员工具中的元素时。
【解决方案2】:
好吧,当您总是可以将 on click 方法与普通的 html 按钮一起使用时,使用 asp 按钮调用 JavaScript 是多余的。
<button onclick="onButtonClick()">Click me</button>
但是,您可以通过以下方式做到这一点
Response.write("<script type=""text/javascript"">onButtonClick();</script>")
// OR
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:onButtonClick(); ", true);
// OR
string name = "onButtonClick()";
ScriptManager.RegisterClientScriptBlock(this, typeof(string), "Key", name, true);
// OR
ScriptManager.RegisterStartupScript(this, GetType(), name, false);
【讨论】:
-
-
同意@John。该页面将需要一个脚本管理器<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>,如图所示:javascriptshorts.com/…