3

現在、剣道チャートには 2 段階のプロセスがあります。最初のプロセスは、ユーザーがグラフに表示するデータセット (シリーズ) を選択できるようにすることです。次に、テンプレートを選択します。テンプレートは、グラフ設定の例です (色のテーマ、グラフの種類の線、棒、円など)。

現在、ユーザーが必要なデータセットを選択すると、シリーズ情報がグラフに返され、グラフにテンプレート設定が入力されます。

また、ユーザーがその場でテンプレート設定を変更できるようにします。たとえば、折れ線、面、円などの棒グラフ。また、テーマを変更することもできます。最初のロードが設定されたときに問題が発生します。渡すシリーズ情報は次のとおりです。

{
  [name: "string", data: []], 
  [name: "string", data: []]
}

テンプレートの変更後にシリーズオブジェクトを調べると、オブジェクトに次のものが追加されていることがわかります。

{
  [name: "string",
   data: [],
   type: "area",
   color: "ff6800",
   ect...   
  ],
  [name: "string",
   data: [],
   type: "area",
   color: "ff6800",
   ect...   
  ],
}

問題は、オブジェクト タイプを正しい選択タイプに変更できることです。シリーズごとに色の値を異なる色に変更することもできます。ただし、Kendo Themes を使用しているため、グラフの背景は変わりますが、シリーズの色は一致しません。チャートの背景色を選択してから、シリーズに必要な色を選択する関数を考え出すことができます。でも、できれば剣道を使いたいです。

また、そのオブジェクトをクリアして、渡している設定とデータを使用するだけでうまくいくと思います。ただし、ページ レベルが変更されるたびにデータベースにアクセスする必要はありません。一時オブジェクトを作成しても、オブジェクトにはすべてのチャート プロパティが与えられていることにも気付きました。

前もって感謝します!

4

1 に答える 1

4

剣道フォーラムでこの質問をしたところ、次の回答がありました。

チャート オプションを渡す前に、その詳細コピーを保持する必要があります。これにより、元のオプションのみを使用してチャートを再作成できます。

var options = { ... };

$("#chart").kendoChart(
     // No side effects on options
     $.extend(true, {}, options)
 );

例を見ると、ページでさまざまなイベントが発生したときにグラフを変更できるため、この方法で行うのは理にかなっています。たとえば、テーマやグラフの種類を変更したい場合。私はちょうど変更することができます:

options.seriesDefaults = { type = "bar" };

Tsvetomir が提供する例へのリンクは次のとおりです: http://jsbin.com/ulohof/1/edit

剣道フォーラムの質問へのリンクは次のとおりです: http ://www.kendoui.c​​om/forums/dataviz/chart/kendo-chart-dynamic-series.aspx

于 2013-03-29T14:06:34.573 に答える