2012-05-23 44 views
0

我想從我的代碼在C#後面調用一些函數。我正在尋找如何做到這一點,並能夠在需要時調用警報來顯示。但是,我不知道如何打電話給其他人!從C#代碼隱藏在ASP.NET中調用Javascript(Raphael.js庫)

這是我需要從後面的代碼中調用:

var paper = Raphael("paper1", 800, 800); 
var Plan = paper.path("M100, 100 a 50, 50 0 0,1 50, 50 l -50 0 l 0, -50"); 
Plan.attr({ fill: "#FF6600" }); 

我已經試過這對一個普通的HTML文件,但我不能夠使用它。我也在使用母版頁,大部分我發現的例子都沒有母版頁,所以我對此很迷茫。

任何人都可以幫忙嗎?

+0

你怎麼了'警報()'調用工作呢?你不能在瀏覽器上「調用」任何東西,你只能輸出一個'「,false); – user1412716

+0

在你的問題中調用代碼塊應該是一樣的。當你嘗試時會發生什麼? JS代碼是否輸出到瀏覽器?瀏覽器的JS控制檯中是否有錯誤? – millimoose

回答

0

在.aspx頁面中創建一個JavaScript函數,然後調用從代碼的功能的背後,像這樣:HTML代碼中

功能

function dostuff() 
{ 
    // code here 
} 

C# code in code behind 
protected void callmethod() 
    { 
     StringBuilder oSB = new StringBuilder(); 
     Type cstype = this.GetType(); 


     try 
     { 
      oSB.Append("<script language=javaScript>"); 
      oSB.Append("dostuff();"); 
      oSB.Append("</script>"); 
      Page.ClientScript.RegisterClientScriptBlock(cstype, Guid.NewGuid().ToString(), oSB.ToString(), false); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
     finally 
     { 
      oSB = null; 
     } 
    } 
+0

我試過了,警報奏效了。 這是我現在在我的aspx文件中 」); (),ToString(),oSB.ToString(),false);返回頁首返回頁首返回頁首返回頁首返回頁首返回頁首返回頁首返回頁首 但它不工作!有任何想法嗎? – user1412716

+0

<腳本語言= javaScript> src = raphael.js「??爲什麼要將引用添加到JS文件兩次? StringBuilder oSB = new StringBuilder();類型cstype = this.GetType(); oSB.Append(」 「); Page.ClientScript.RegisterClientScriptBlock(cstype,Guid.NewGuid()。ToString() ,oSB.ToString(),false); 這應該工作 –

0

JavaScript只能在客戶端調用。如果您絕對需要從服務器端調用它,則可以使用asp:HiddenField的值作爲標誌,以便在需要返回時執行JavaScript代碼,然後在滿足要求時運行所需的JavaScript。

但它不是一個好的解決方案,你應該嘗試分開服務器和客戶端。

希望這有助於,無論如何!

+0

那麼你會建議能做到這一點?我只需要在屏幕上打印一些形狀,具體取決於從數據庫中取得的一些項目的狀態。我用CSS來完成,但愚蠢的IE並沒有使用它。 – user1412716