質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

1回答

2100閲覧

【jQuery】Chart上のクリックした任意のx軸の値を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Chart.js

Chart.jsは、多様なグラフを組み込めるJavaScriptのライブラリ。折れ線グラフや棒グラフ、円グラフ、レーダーチャートなどのグラフの種類が用意されています。HTML5のCanvasを用いて描画され、マークアップも分かりやすく、簡単に編集することが可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2020/10/17 08:39

編集2020/10/17 12:26

jQuery勉強中です。ネットで調べていたのですが、わからなかったのでご教授ください。

【困っていること】
グラフにjQueryの内容が反映されない。


SQLDataSourceの結果をStackedBar100で表現し、URLで遷移できるようにしたいです。
これをchart.jsを使って実現しようとしています。

調べてみると、
chart.jsで実現するためには、canvasタグで囲まないといけないようなので、
$("#Chart1").wrapAll($("<canvas id=" + "Chart1"+ "></canvas>"));
と記述しました。

しかし、うまくいきませんでした。

私の知識不足ということもあり、何が原因かわからない状態です。
原因をご教授いただけないでしょうか。

<body> <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script> <script type="text/javascript"> $(document).ready(function () { $("#Chart1").wrapAll($("<canvas id=" + "Chart1"+ "></canvas>")); const ctx = document.getElementById('Chart1').getContext('2d'); const chart = new Chart(ctx, { type: 'stackedbar100', }); document.getElementById('Chart1').addEventListener('click', e => { const elements = chart.getElementAtEvent(e); if (elements.length) { alert(`${elements[0]._index}: ${elements[0]._model.label}`); } }); }); </script> <form id="title" runat="server"> ・・・・ <div> <asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1"> <series> <asp:Series ChartType="StackedBar100" Name="Series1" XValueMember="KI" YValueMembers="50点~70点"> </asp:Series> <asp:Series ChartArea="ChartArea1" ChartType="StackedBar100" Name="Series2" XValueMember="KI" YValueMembers="70点~100点"> </asp:Series> </series> <chartareas> <asp:ChartArea Name="ChartArea1"> </asp:ChartArea> </chartareas> </asp:Chart> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" SelectCommand="【(省略)SQL文】"></asp:SqlDataSource> </div> </body>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/17 13:14

chart.js とか言いながら、使っているのは ASP.NET の Chart コントロールのようですが????? 分かってやってますか?????
退会済みユーザー

退会済みユーザー

2020/10/17 13:28

変換ができるのかなと思ってました。 すみません。
退会済みユーザー

退会済みユーザー

2020/10/17 13:39 編集

> 変換ができるのかなと思ってました。 変換? 何を言っているのでしょう。 前のスレッド https://teratail.com/questions/295789 でも言いましたが、サーバー側とクライアント側で起こっていることをゴッチャに考えているなど、言ってることがメチャクチャですよ。
退会済みユーザー

退会済みユーザー

2020/10/19 03:34

質問者さん、無言になってしまいましたが、回答しましたのでそれに対するフィードバックを書いてください。役に立った/立たなかったぐらいはすぐ回答できるのでは? 役に立たなかったならどこが期待する回答と違うかを具体的に書いてもらえると代案などが出せるかも。とにかく無言は NG です。
退会済みユーザー

退会済みユーザー

2020/10/21 02:52

もう一回書きます。 質問者さん、無言になってしまいましたが、回答しましたのでそれに対するフィードバックを書いてください。役に立った/立たなかったぐらいはすぐ回答できるのでは? 役に立たなかったならどこが期待する回答と違うかを具体的に書いてもらえると代案などが出せるかも。とにかく無言は NG です。
guest

回答1

0

chart.js とか言いながら、ASP.NET Web Forms 用の Chart コントロールを使って何かしようとしているようですが、その 2 つは全くの別物です。

コメントに書いてあった、

変換ができるのかなと思ってました。

で質問者さんの言う「変換」に何を期待しているのか不明ですが、少なくとも一般的な意味で言う変換とかは起こり得ません。

ASP.NET Web Forms 用の Chart コントロールは、サーバー側で画像(デフォルトで .png 形式)を生成し、ブラウザ側で img 要素の src 属性に指定される画像の取得方法(3 通りあり、デフォルトでは HTTP ハンドラを使う)に従いサーバーからダウンロードするようになっています。要するに img 要素に表示された .png 画像です

詳しくは以下の記事を見てください。

Chart
http://surferonwww.info/BlogEngine/post/2010/11/27/Chart.aspx

一方、chart.js は指定された type で、渡された data を使って JavaScript で canvas 要素にグラフを描画するというように、全てクライアント側での動作になっているようです

なので、ASP.NET Chart が生成した .png 画像を、自動的に質問者さんの意図に従って chart.js が「変換」してくれて、質問者さんが考えているような「【jQuery】Chart上のクリックした任意のx軸の値を取得したい」などということはあり得ません

ただし、chart.js 単独で描画したグラフで、chart.js の JavaScript で何ができるのかは、chart.js の機能を熟知しているわけではない自分には分かりませんが。

少なくとも ASP.NET Web Forms 用の Chart コントロール + chart.js で望むようなことをするのは 100% 不可能・・・とまでは言いませんが限りなく不可能に近いので、別の手段を考えることをお勧めします。

投稿2020/10/18 01:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/22 00:03

理由も書かずにマイナス評価を付けたのは誰?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問