• 締切済み

DBのデータをjavascript側で利用したい

お世話になっております。 visual studio 2008でasp.net開発(VB)を行っております。 タイトルの通りなのですが、データバインドしたDBのデータの値をjavascript側に渡せず困っています。 具体的には、以下の通りです。 ■以下のテーブルがあります。  色 | 種類 | もの ===================  赤 |くだもの| りんご  紫 |くだもの| ぶどう  赤 | やさい | トマト  紫 | やさい | なす ■ASPのページには、ドロップダウンリストが2つあります。   ドロップダウンリストの値は、テーブルの"色"と"種類"のデータをバインドしています。   2つのドロップダウンリストを選択した時の"もの"の値をjavascript側で利用したいです。 この際のデータの渡し方が分からずに困っています。 私の行った手法としては、データバインドの出来るドロップダウンリストを新しく用意して、 そこへ一旦"もの"の値を入れておき、javascriptの「document.getElementById」を利用して 値を取得するという方法です。 実際上記の手法で期待する結果は得られましたが、結果取得用の3つ目のドロップダウンが 画面上に見えていることは好ましくありません。 そこで、visibleプロパティをFalseにしたところ、値が取得できなくなりました。 調べたところ、visibleプロパティをFalseにすると、画面描画だけでなく、HTML形式への変換も 行わなくなるので、javascriptへの値渡しも出来ないとの事でした。 とりあえず、暫定で3つ目のドロップダウンのwidthを0ptにしましたが、完全に消えるわけではないので、困っております。 長文になりましたが、現在ドロップダウンで暫定対応している点で、もっと一般的なな手法や案が御座いましたらご教示宜しくお願い致します。

みんなの回答

  • WebSurfer
  • ベストアンサー率55% (33/59)
回答No.2

> 暫定で3つ目のドロップダウンのwidthを0ptにしましたが、完全に消える > わけではないので、困っております。 html はレンダリングするが表示はしないということなら、当該 DropDownList で style="display:none;" としてやれば良いと思います。 具体的な方法は、例えばコードで行うなら、3 つ目の DropDownList に以下の ように設定します。もちろん css で静的に設定してやっても OK です。 protected void Page_Load(object sender, EventArgs e) { DropDownList3.Style["display"] = "none"; } ただし、テーブルの構造を見る限り、それで 2 つの DropDownList で選択し たデータから「もの」が特定できるとは思えません。「実際上記の手法で期 待する結果は得られました」とのことですが、失礼ながら、勘違いではない かと思われます。 > もっと一般的なな手法や案が御座いましたらご教示宜しくお願い致します。 クライアントコールバックや Web サービス + ASP.NET AJAX(または jQuery AJAX)を使用して、サーバーに 2 つの DropDownList で選択したデータを渡 し、サーバー側でそのデーターで DB を検索し、結果(該当する「もの」)を クライアントに返し、クライアントスクリプトでそれを受けて処置するという やり方をお勧めします。

参考URL:
http://surferonwww.info/BlogEngine/post/2011/04/02/Client-Callback.aspx
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

visible:false よりもinputタグのtype:hiddenの方が早いんじゃない?

関連するQ&A

  • DBの値を利用して、3つの連動したセレクトフォームを作りたい

    今回作りたいものは、このサイトで質問する際の「投稿カテゴリー選択フォーム」と全く同じものです。 大中小のカテゴリーを選択するドロップダウンリストが3つあり、大カテゴリーを選べばそれに応じた中カテゴリーの値が2つ目のドロップダウンリストに入り、 大と中のカテゴリーを選べばそれに応じた小カテゴリーの値が3つ目のドロップダウンリストに入る。というものです。 リストに使うデータは、全てデータベースから取得してきます。(各カテゴリーのデータを格納した3つのテーブルがあります。) ベースはPHPで作成していますが、この動作を行うにはJavaScriptが必要だとか、onChangeというものを使えばいいとか、ある程度調べたのですが、具体的にどのように記述すればいいのかわかりません。 サンプルが置いてあるサイトも見たのですが、ドロップダウンリストが2個だったり、リストに入るデータが数個の固定された文字列だったりと、応用できるものではありませんでした。 当方、PHPは若干わかりますが、JavaScriptに関してはほとんど知識がありません。 詳細まで教えていただける方、もしくは同じ内容の解説が載っているサイトなどがあれば教えてください。 よろしくお願いします。

  • javascriptでlabelの値取得

    vs2012(c#)で <asp:Label ID="test" runat="server" Text="abc" Visible="true"></asp:Label> の値をjavascriptで取得したいのですが、下記で実行すると l1はnullになり取得できません。 var l1 = document.getElementById("test"); var data = l1.innerText; console.log(data); そのようにすれば取得できるでしょうか

  • JavaScriptのポップアップカレンダーについて

    http://allabout.co.jp/internet/javascript/closeup/CU20020529/ 上記サイトにある、JavaScriptを使用したポップアップカレンダを使 っているのですが、ページ内にドロップダウンリストがあるとカレン ダがドロップダウンリストより背面になってしまいます。 (ドロップダウン以外はカレンダが前面に来ます。) カレンダを前面に表示することはできないでしょうか?

  • JavaScriptでDBアクセス

    テキストボックスに入力されたキーワードを元にDBからレコードを読み込み動的にリストボックスを作成する方法はありませんか? DBはODBC経由のMSaccessを使用しています。 ASP(ActiveServerPage)でDBからデータを読み込んでJavaScriptに渡すのが一番だと思うのですが仕組みが良くわかりません。こうゆう事ってできますか?

  • ASP.NETのコントロールの値をJavaScriptで取得

    超初級の質問ですみません。 (ASP.NET初心者です) ASP.NETのラベルコントロールの値をJavaScriptで取得する方法が分かりません。 var data = document.getElementById("lblTest").Text; alert(data); といった記述で良いのかと思っていたのですが、値が取得できていません。 諸事情によりJavaScriptのFunctionの引数は増やせない為、直接値を参照する必要があります。 ご回答、宜しくお願いします。

  • PageLoadの後にJavascript実行したい

    お世話になります、よろしくお願いします。 VisualStudio2003でASP.NET(VB)とJavascriptを使ってサイト製作をしています。 ラジオボタンにJavascriptを入れて、項目の表示/非表示を切り替えています。(CSSのdisplay:noneとinlineを切替) これとは別に、ドロップダウンリストが2つ(A,B)あり、Aのドロップダウンリストを変更するとPostBackして、Bの選択肢が変化するといった風に作成しています。 ここで問題が発生し、PostBackが発生すると、項目の表示が初期状態に戻ってしまいました。 あれこれと考えて、Aにも項目の表示/非表示を切り替えるJavascriptを付けたのですが、どうもJavascriptが実行されてからPostBackが発生しているようで、お手上げです。 PostBackが発生しても、表示をそのままにできる方法は無いのでしょうか?よろしくご教授下さい。

  • javascriptでセッションを取得

    javaのsession.setAttribute()でセットした値をjavascriptで取得することは可能なのでしょうか? 可能であれば、手法を教えていただければと思います。 よろしくお願いします。

  • javascriptだけでドロップダウンリスト

    あるサイトに行ったら、htmlでなく(?)javascriptだけでドロップダウンリストを表示し、リンクさせていました。つまり小さなボタンを押すと、リストが広がって表示されます。これは、ちょっと面倒なテクニックでしょうか?短いスクリプトで使えるなら是非知りたい。長いものならパス・・・。

  • Excel データフォーム

    Excelのデータフォームにドロップダウンリストを入れることは可能でしょうか? ネットで検索しても別々には見つかりますが、データフォームにドロップダウンリストを入れる方法がみつかりません。 もしやり方があるようでしたらexcel2010又はexcel2013で教えて頂けると助かります。よろしくお願いいたします。

  • ドロップダウンリストからフィールドの選択

    アクセスを使用してデータベースを作っています。 一例としてですが、テーブル内のフィールドに種類、品名があり、各々についてルックアップウィザードを使用して、種類のフィールドからは、野菜、果物、惣菜・・・などをドロップダウンリストに、品名のフィールドからは、キャベツ、白菜、人参、桃、みかん、バナナ、肉じゃが、カレー、ハンバーグ・・・などをドロップダウンリストに表示できるようになっています。 ところが、品名のドロップダウンリストがあまりに長くなってしまうため、品名の参照元のテーブルにフィールドを3種類(例:品名1野菜・品名2果物・品名3惣菜)作成し、種類のレコード゛の値によって、参照元のテーブルのフィールドを選択しドロップダウンリストの表示が切り替わる(例えば種類のドロップダウンリストに果物を選択すると品名のドロップダウンリストには、桃・みかん・バナナのみが表示される。)ようにしたいのですが、可能でしょうか?