簡體   English   中英

無法從C#代碼隱藏中觸發Javascript

[英]Can't get Javascript to fire from c# codebehind

我在這里和許多其他網站上讀了很多文章,因此我收集了一些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中,並且始終相同,什么也沒有。

與往常一樣,感謝您的耐心和幫助。 問題可能會暴露出我的無知,但我正在學習。

嘗試使用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM