2016-04-07 7 views
2

"Home.aspx"というWebフォームがあります。.csファイルから.aspxに配列を渡すには

Home.aspx.csでは、myArrayという配列を作成しました。

この配列をHome.aspxで使用して、ワードクラウドを生成したいとします。以下のようなもの :

<script> 
$('#wordcloud').jQCloud(myArray,{shape: 'rectangular'}); 
</script> 

誰かがこれを解決する上で私を助けることができます。

+0

あなたはこれまでに行った研究を教えてください。これはむしろ基本的な質問です。実質的にすべてのasp.netプログラムは、その多くがオープンソースであり、あなたが求めているものに似た何かをしなければならない。 –

+0

こんにちはアンドリュー。私はしばらくの間、Googleで検索しました。そして、私はこの質問を.netに新しいものとして尋ねました(それは非常に基本的な質問であることを知っていませんでした).netで多くの経験がありません。 – ASN

+1

この場合は、.netを学習するために使用した学習リソースを参照することをお勧めします。それは非常に早い時期にカバーされるべきです。 asp.netの背後にあるコードとそれがどのように機能するかについて読む。クラス、プロパティメソッド、およびそれらの間の関係が何であるかを理解するためにOOPを読み上げることも役立ちます。最後に、コードのさまざまな部分がロードされ実行されるタイミングと場所を調べます。 .net配列がホストされている場所、JavaScriptが実行される場所、サーバーからの情報がどのようにクライアントに流れるか。それが助けになるはずです。 –

答えて

0

まず、C#で生成された配列をaspxページに配置する必要はありません。その配列はC#オブジェクトであり、javascriptをテキストとして送信する必要があるからです。配列の文字列出力をページに配置したいとします。だからあなたのコードの背後に保護されたプロパティとして文字列を作成し、に配列の文字列を配置する必要があります。

その後、フロントエンドに、あなたはそれを達成するためのいくつかの方法があります<%= myString %>

+0

こんにちはジョナサン..返信いただきありがとうございます。あなたはそれを行う方法を教えていただけますか? – ASN

0

でページ上に保護されたプロパティを書き込むことができます。

  1. レッツサーバー側のコードを使用すると、その後に ClientScriptManager.RegisterStartupScriptメソッドを使用し コードビハインド(.aspx.csページ)に文字列としてJSコードを作成する必要がありますを意味し 、あなたのための全体のJavaScriptを生成しますそれを登録してください。 ページロード時にJSコ​​ードが実行されます。
  2. ASPXページでサーバー側スクリプトタグを使用します。ポイント1と似ていますが、フロントページにサーバーサイドコードを記述します。
  3. JSシリアル化を適用し、シリアライザでJS配列を生成させます。

以下は、シリアライゼーション手法を使用した例です。

<% 
    // create you array here 
    var myArray= new string[]{"apple", "orange"}; 
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
%> 

JavaScriptコードブロックの前に、上記のコードをASPXページに配置する必要があります。

<script> 
    var myJsArray = <%= serializer.Serialize(myArray) %>; 
    $('#wordcloud').jQCloud(myJsArray, {shape: 'rectangular'}); 
</script> 

ただし、サーバー側の配列オブジェクトとクライアント側のJavaScript配列は、2つの異なるものです。シリアライゼーション/デシリアライゼーションは、データとデータの配列をブラウザとWebサーバー間で受け渡すために必要です。

関連する問題