无法让 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中,总是一样,什么都没有。

与往常一样,感谢您的耐心和帮助。我的无知可能会暴露为问题所在,但我正在学习。

无法让 Javascript 从 c# 代码隐藏中触发

尝试使用 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);