2011-12-14 18 views
2

これはかなり新しい初心者の質問です。私は、オープンソースのjavascriptライブラリ 'flot'を使って、サーバー側チャートライブラリを置き換えることを検討しています。私はASP.NETからjavacriptライブラリを呼び出す

<div id="placeholder" style="width: 600px; height: 300px;"> 
</div> 
<script type="text/javascript"> 
    $(function() { 
     var d = [<% 
     for (var i = 0; i < 10; i++) { 
      if(i > 1) 
       Response.Write(","); 

      Response.Write("[" + i + "," + Math.Sin(i) + "]"); 
     }%>]; 

     $.plot($("#placeholder"), [d]); 
    }); 
</script> 

これは魅力を動作しますが、私が本当に行う必要があると、ファイルの後ろに自分のコード内のメソッドからの表示データである(そして最終的には、次の例に従ってライブラリを呼び出すために使用されるJavaScriptでASPを使用することができますデータベース)。速いGoogleは、これを達成するためにAJAXを使用する必要があると示唆していますが、私はページの読み込み時にそれをやりたいと思います。

これは私にとっては簡単なことですが、私はウェブ開発に比較的新しいです(私はWindowsフォーム開発者であり、MS認定のものであるので、C#で自分の道を知っています)。

何か助けや指針をいただければ幸いです。

乾杯、

ニール。

答えて

0

これは必ずしもベストプラクティスのソリューションではありませんが、ページの読み込み中にサーバー上でJavaScriptを動的に生成できます。

これは良い出発点になります:あなたが使用して、JavaスクリプトコードにいくつかのC#関数を呼び出すことができます MSDN: ClientScriptManager.RegisterClientScriptBlock Method

0

:それはC#関数の戻り値を返します

<%# C#_FunctionName(parmVal1,ParamVal2) %> 

を、またはC#関数を実行します。おかげ

+0

... するvar D = [ <%#C#_GetData()%> ]; 「プリプロセッサディレクティブが最初に空白でない行に表示される」というこの文を実行すると、コンパイルエラーが発生します。私はコードを移動しようとしていたし、 "Preprocessor directive expected"のようなエラーが出る。 –

+0

C#_GetData()関数の名前ですか?私はそれをC#関数として示すためだけにC#を追加しました。誤って関数の名前をC#_に追加した場合は、それを削除してコードをコンパイルしてみてください。 – Riky

1

は非常に広く、何を検討するかもしれないことはこれです

- それは、それを使用して、サーバから返されたときに、あなたの「D」の変数を生成するために、「コードビハインド」のページを呼び出すためにjQuery AJAXを使用して、あなたの$ .plot($( "#placeholder")、[d]);ステートメント。

あなたは、データベースからのものを取得する「GenerateData.ashx」とのResponse.Writeは、()I罪(I)値のリストとしてそれをすべてアウトだと言う、ハンドラクラスを作成することができ、その後、

$(function() { 
    $.ajax({ 
     url: "GenerateData.ashx", 
     success: function(data){ 
      $.plot($("#placeholder"), data); 
     } 
    }) 
}; 

私は私のスクリプトに次のコードを配置しているこれらの線に沿って何か...

+0

私はあなたが何を得ているのかを見ることができると思う、私は最良の方法は、とにかくWebサービスから自分のデータを取得することだと考え始めている。 ページを読み込んでAJAXを使用してデータを取得してグラフを作成するには、少しでも奇妙に思えます。どういうわけか私のページの読み込みでこれを行うことはできませんか? –

+0

さて、AJAX-yの部分は非同期読み込みを想定しています。データベースからのデータの読み込みに遅延が発生する可能性があります。その前にユーザーにページの残りの部分を表示しておくと便利です。これにより、データの表示を変更することもできます。このビューは、ページの残りの部分を再描画せずにフェッチすることができます。 –

関連する問題