1

これまでのすべてのご協力に感謝します私は以下の変更を加えました

これは実行時のコードです:

<body>
<form method="post" action="ResultsDetails.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"    value="/wEPDwUJNzQ5NzY1NjU0ZGRuWExqnYyaWn0sRggTtOIdHlawc3aZvdNLKpOq0D+uMQ==" />
</div>

 <div id="placeholder" style="width:600px;height:300px;"></div>


<script type="text/javascript">
//<![CDATA[
var arrayOfResults = new Array(); 
 arrayOfResults[0] = 2; 
 arrayOfResults[1] = 4; 
arrayOfResults[2] = 5; 
arrayOfResults[3] = 1; 
arrayOfResults[4] = 4; 
 var numberArray = Array(1, 2, 3, 4, 5); 
  //]]>
</script>
</form>

<div id="codeGeneration">
  <script type="text/javascript">
   $(document).ready(function () {
      $.plot($('#placeholder'), [arrayOfResults, numberArray]); 
     });


</script>
</div>

</body>

プロットメソッドが実行されていますが、配列が初期化されていないというエラーが表示され続けますか?

私は使用しています

 ClientScript.RegisterStartupScript(this.GetType(), "run", sb.ToString() ,true);

配列コードを記述します。


愛する私は次のことをしました

  private void generateJScriptArray(int[] array)
{
    StringBuilder sb = new StringBuilder();        
    sb.Append("var arrayOfResults = Array(); \n ");

    for (int i = 0; i < array.Length; i++)
    {
        sb.Append("arrayOfResults[" + i + "] = " + array[i] + "; \n ");
    }

    sb.Append("var numberArray = Array(1, 2, 3, 4, 5); \n");

    sb.Append("alert(numberArray[0]); \n");

    sb.Append("$(document).ready(function () { \n  $.plot($('#placeholder'), [arrayOfResults, numberArray]); \n });");

    ClientScript.RegisterStartupScript(this.GetType(), "run", sb.ToString() ,true);
}

助けてくれたすべての人に感謝します。

4

3 に答える 3

5

ScriptManagerを使用して、起動スクリプトを登録します。このようなもの:

ScriptManager.RegisterStartupScript(this, this.GetType(),"somekey","your run script",true);
于 2012-08-28T11:13:25.750 に答える
1

スクリプトマネージャを使用せずにそれを行うこともできます。

string Code = "<script> alert('Foo Alert');</script>";
ClientScript.RegisterStartupScript(this.GetType(), "someKey", Code);
于 2012-08-28T11:36:34.690 に答える
1

あなたは試すことができます

<body onload="javascript:run()">

または、jQueryを読み込んでいることを確認したら、body onloadの代わりに、jQueryのdocumentreadyイベントを使用してrun関数を実行してみませんか。

$(function(){
    run();
});

numberArray配列を初期化するときに考慮してください、それはする必要があります

var numberArray = [1, 2, 3, 4, 5];
//instead of
int [] numberArray = {1, 2, 3, 4, 5}; //It feels like C#

また、以下を削除します

(function () { 
    $.plot($('#placeholder'), [arrayOfResults, numberArray]);
} //missing );

実行関数から、プロットラインのみを残します

$.plot($('#placeholder'), [arrayOfResults, numberArray]);

ページとすべての外部スクリプトがロードされたときに関数runが呼び出されるため(onloadまたはjQueryドキュメント対応のいずれかを使用)

それが役に立てば幸い、

gR

于 2012-08-28T14:37:02.730 に答える