无法让 Javascript 从 c# 代码隐藏中触发
本文关键字:隐藏 代码 Javascript | 更新日期: 2023-09-27 18:33:50
我在这里和许多其他网站上阅读了很多帖子,所以我收集了一些如何做到这一点的版本。我的问题是我无法让它做任何事情。
这是Javascript,只是一个测试警报:
<script type="text/javascript">
function ICDcheck() {
alert('Patient has an ineligible diagnosis code!');
}
</script>
我通过将函数添加到按钮的 OnClientClick 来手动测试它,它工作正常。
这是我在代码隐藏中尝试的内容:
ClientScript.RegisterClientScriptBlock(this.GetType(), "uniqueKey", "ICDcheck()", true);
和。。。
string jsMethodName = "ICDcheck()";
ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey", jsMethodName, true);
和。。。
lblJavaScript.Text = "<script type='text/javascript'>ICDcheck();</script>";
最后一个引用了我位于 asp 顶部的标签:内容正好在脚本和 asp : 脚本管理器块下方。
我把这些位放在button_click、page_load、sqldatasource_selecting、formview_PageIndexChanging中,总是一样,什么都没有。
与往常一样,感谢您的耐心和帮助。我的无知可能会暴露为问题所在,但我正在学习。
尝试使用 Page.ClientScript :
Page.ClientScript.RegisterStartupScript( GetType(), "MyKey", "ICDcheck();", true);
还要安装 firebug 并检查是否有任何脚本错误。
试试这个。在您的页面上,有一个按钮:
<asp:Button ID="RunJsButton" runat="server" Text="Button" />
然后,在代码隐藏中,将脚本注入响应并将连线添加到按钮:
protected void Page_Load(object sender, EventArgs e)
{
string scriptToRun = @"function ICDcheck() { alert('Patient has an ineligible diagnosis code!');}";
ClientScript.RegisterClientScriptBlock(this.GetType(), "", scriptToRun, true);
RunJsButton.OnClientClick = "return ICDcheck();";
}
如果这是你所追求的那种东西,你可以稍微重构它以实现最佳实践。
尝试
<button ID="your_btn" onclick="javascript:your_function(); return false;"><asp:literal ID="your_literal" runat="server" /></button>
和
<script type="text/javascript">
function your_function() {
alert('Patient has an ineligible diagnosis code!');
}
</script>
这应该有效。
string jsToRun = "<script language=javascript>ICDcheck();</script>";
Type csType = this.GetType();
ClientScript.RegisterStartupScript(csType, "Key", jsToRun);