2013-10-04 33 views
0

我已經在這裏閱讀了許多帖子和許多其他網站,因此我已經收集了如何做到這一點的幾個版本。我的問題是我無法做任何事情。無法讓Javascript從c#代碼隱藏起火

這裏的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:ScriptManager塊下方的asp:Content內容的頂部。

我已經把這些位放在了button_click,page_load,sqldatasource_selecting,formview_PageIndexChanging和總是一樣的,什麼都沒有。

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

+0

嘗試Page.ClientScript.RegisterStartupScript( 的GetType(), 「的myKey」, 「ICDcheck();」, 真);同時安裝螢火蟲,並檢查是否有腳本錯誤。 – Zaki

+0

如果使用「uniqueKey」的腳本被註冊或不註冊,請使用IsClientScriptBlockRegistered方法進行檢查。請參閱http://msdn.microsoft.com/en-us/library/aa5tktc9.aspx – mit

+0

YES!山姆,那工作。我很想知道爲什麼有很多方法可以完成同樣的事情,爲什麼有些人會爲某些人工作,而不是爲其他人工作。還是這些其他的意圖是在我沒有完全意識到的特定情況下使用?無論哪種方式,感謝您花時間幫助我。 –

回答

1

嘗試使用Page.ClientScript

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

還要安裝firebug並檢查是否有任何腳本錯誤。

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

試試這個。在您的網頁,有一個按鈕:

<asp:Button ID="RunJsButton" runat="server" Text="Button" /> 

然後,在代碼隱藏,注入腳本到響應和wireup添加到按鈕:

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

如果這是什麼樣的你所追求的東西,你可以重構一下,以實現最佳實踐。

+0

我會測試這個以及希望更好地理解這些東西。謝謝您的幫助。 –

+1

@R_Scott如果你想得到真正的幻想,你可以創建一個類似於這兩個職位的職位[第一](http://www.west-wind.com/weblog/posts/2008/Feb/12/Embedding -ASPNET-Server-Variables-in-Client-JavaScript)和[second](http://www.west-wind.com/weblog/posts/2008/Feb/21/Embedding-ASPNET-Server-Variables-in-客戶端 - JavaScript的第2部分)。當我用於編寫Web表單應用程序時,我曾經使用過類似的東西。 – onefootswill

0

這應該工作。

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

Type csType = this.GetType(); 

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