无法从后面的c#代码中获取Javascript

时间:2013-10-04 12:46:09

标签: c# javascript asp.net

我在这里和许多其他网站上阅读了很多帖子,因此我收集了几个版本的HOW来做到这一点。我的问题是我无法做任何事情。

这是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:ScriptManager块。

我把这些位放在button_click,page_load,sqldatasource_selecting,formview_PageIndexChanging中,总是一样,没有。

一如既往,感谢您的耐心和帮助。我的无知很可能会成为问题所在,但我正在学习。

4 个答案:

答案 0 :(得分:1)

尝试使用Page.ClientScript

Page.ClientScript.RegisterStartupScript( GetType(), "MyKey", "ICDcheck();", true);

同时安装firebug并检查是否有任何脚本错误。

答案 1 :(得分:1)

试试这个。在您的页面上,有一个按钮:

<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();";
    }

如果这是您所追求的事情,您可以稍微重构一下以实施最佳实践。

答案 2 :(得分:0)

尝试

<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>

答案 3 :(得分:0)

这应该有用。

string jsToRun = "<script language=javascript>ICDcheck();</script>";

Type csType = this.GetType();

ClientScript.RegisterStartupScript(csType, "Key", jsToRun);