-1

チャートを表示する次のものがありますJavaScript。現在、テスト目的で、次のようにハードコードされた配列を渡しています。

@model IEnumerable<Medical.Models.Session>

<script src="../../Scripts/jqplot/jquery.jqplot.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.barRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.categoryAxisRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.pointLabels.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.dateAxisRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.highlighter.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.cursor.min.js" type="text/javascript"></script>



<p>
<script type="text/javascript">
    $(document).ready(function () {

        line1 = [['23-May-2008', 578.55], ['20-Jun-2008', 566.5], ['25-Jul-2008', 480.88],
        ['22-Aug-2008', 509.84], ['26-Sep-2008', 454.13], ['24-Oct-2008', 379.75],
        ['21-Nov-2008', 303], ['26-Dec-2008', 308.56], ['23-Jan-2009', 299.14],
        ['20-Feb-2009', 346.51], ['20-Mar-2009', 325.99], ['24-Apr-2009', 386.15], ['01-Apr-2012', 786.15]];
        var plot1 = $.jqplot('chart1', [line1], { title: 'Data Point Highlighting',
            axesDefaults: { pad: 1.2 },
            axes: { xaxis: { renderer: $.jqplot.DateAxisRenderer,
                tickOptions: {
                    formatString: '%d/%b/%Y'
                }
            },
                yaxis: { tickOptions: { formatString: '%.2f'} }
            },
            highlighter: { show: true, sizeAdjust: 7.5, tooltipLocation: 'nw'
                //            , formatString: '<b>%s</b>'
            }, cursor: { show: true, tooltipOffset: 6 }
        })

    });

</script>

<div id = "chart1">
</div>

しかし、上記の配列をモデル値を持つように動的に構築するにはどうすればよいLine1ですか。次のようなものです。

   @foreach (var item in Model) {
      //code goes here,, 
      line1 [1,1] = [item.Date, item.Result]
   }
4

2 に答える 2

0

Razor は JavaScript とうまく組み合わせられないため、この種の変換は本質的にバグがあります。私は提案し、代替します。

変数 line1 のデータは 2 次元配列です。では、Razor 構文を変換するのではなく、JSON を使用して動的にロードしないでください。たとえば、次のようなコントローラーがある場合があります。

public JsonResult LoadGraphData( ... )
{
     //Populate your two dimensional array here.
     .... 
     return Json( any_two_dim_array , JsonRequestBehavior.AllowGet);
}
于 2012-05-19T09:48:29.670 に答える
0

配列の配列をオブジェクトの配列に変換したいというのは正しいと思いますか?

var line2=[];
for (var i in line1) {
  var a=line1[i];
  var b=new Object;
  b.Date=a[0];
  b.Result=a[1];
  line2[i]=b
}

line2 には、.Date と .Result で値にアクセスできるオブジェクトが含まれるようになりました。

for (item in line2) {
  // do something with item.Date and item.Result
}
于 2012-05-19T04:07:23.750 に答える