2011-09-06 192 views
0

這是我必須在ASP.NET頁面中使用的JavaScript,如何更改它以便它可以在ASP.NET中使用?在asp.net中調用客戶端的服務器端方法

<script type="text/javascript"> 
     window.onload = function() 
     { 
      /** 
      * These are not angles - these are values. The appropriate angles are calculated 
      */ 

      <% Message message = (Message)request.getSession().getAttribute("message"); 

      out.print("var pie1 = new RGraph.Pie('pie1',"+Statistics.messagePercentStats(message.getMessageID()) + ")"); %> 

      // Create the pie object 
      pie1.Set('chart.key', ['Read', 'Received', 'Not Received']); 
      pie1.Set('chart.colors',['#86cf21', '#eaa600', '#e01600']); 
      pie1.Set('chart.title', "Message Status"); 
      pie1.Set('chart.align', 'left'); 
      pie1.Set('chart.shadow', true); 
      pie1.Set('chart.radius', 80); 
      pie1.Set('chart.labels.sticks', false); 
      pie1.Set('chart.highlight.style', '2d'); // Defaults to 3d anyway; can be 2d or 3d 


      if (!RGraph.isIE8()) 
      { 
       pie1.Set('chart.zoom.hdir', 'center'); 
       pie1.Set('chart.zoom.vdir', 'up'); 
       pie1.Set('chart.labels.sticks', false); 
       pie1.Set('chart.labels.sticks.color', '#aaa'); 
      } 
      pie1.Draw(); 
     } 
    </script> 

我應該如何改變這一行來從我的類值被命名爲messagePercentStats

RGraph.Pie('pie1',"+Statistics.messagePercentStats(message.getMessageID()) + ")"); %> 
+0

你將不得不實行某種形式的web服務要做到這一點 - 你不能使用服務器上的一個對象*活*剛剛從瀏覽器 - 有一些框架的工具,使那些魔術發生(WebSharper和F#自帶但我不認爲有這樣的* C#中的純* ASP.NET# – Carsten

+0

我的意思是頁面加載後 – Mano

+0

「頁面加載後」?頁面加載將在您的服務器上執行,並且只是呈現發送到瀏覽器的HTML的一個步驟。當瀏覽器最終執行JavaScript時,在PageLoad中創建的對象甚至可能已經被GC回收了 - 不,正如我所說的,您必須創建WebService(或類似)並在您的JavaScript代碼中調用此對象。 – Carsten

回答

0

我想你可能會試圖做到這一點,假設RGraph.Pie是客戶端。

RGraph.Pie('pie1', 
      '<%= Statistics.messagePercentStats(
        ((Message)request.Session["message"]).getMessageID() %>'); 
相關問題