• ベストアンサー

asp.net の質問です。

asp.net初心者です。言語はvbを使用しています。 ボタンのクリック時にイベントを走らせる方法は なんとなくわかりますが(理解しているというより動く) テキストボックスの値が変わったときに 変更されたタイミングで別のテキストボックスの値を 設定するというのはWebプログラミングでは 難しいことなのでしょうか? 方法と解説を教えていただけると助かるのですが。 aspの本も買ったり、web検索したりしたのですが いまいちよく分からないというか 情報がないというか・・・困っています。 どなたかお力添えお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> ユーザー側で計算値を入れてその結果を画面に表示するのでサーバへの問い合わせは(計算を表示させる時点では)必要ないです。 なるほど。であればその計算部分は JavaScript で記述したほうが早いでしょう。 ただしユーザー側の操作性の観点から見れば、 [計算] みたいなボタンを押してから計算する、というのであればボタンのクリックによってサーバへ一度問い合わせをしてサーバ側で計算を処理し、PostBack にてユーザーへ結果の html を返すのでも問題ないかもしれませんね。 「テキストボックスに数値を入れた瞬間に計算して結果を表示」って要件になっちゃうと、"12" て入力するのに "1" を入れた瞬間に "1" の値で PostBack、"2" を入れた瞬間に "12" の値で PostBack なんて挙動になりますから、ユーザー側の操作性からすると最悪です。 > ASP.NET使用でもユーザー側のブラウザの表示変更部分はJavaScriptで記述しなければならないのでしょうか? 「場合によっては」って事になります。 ASP.NET を使った Web アプリの場合、ユーザーが操作するのはブラウザにレンダリングされた通常の html であるので(特殊な ActiveX コントロールや Flash を使わなければですけど)、画面を変化させるには 1. サーバへアクセスして html 全体を更新する。 2. JavaScript を使って画面の一部を更新する。 のどちらかになります。 どちらを使うかは、その画面のアプリケーション側から見た要件と、ユーザーの操作性側からみた要件の折り合いで決定するのが良いでしょうね。

その他の回答 (1)

回答No.1

mugi-cha さんは サーバサイド という言葉の意味をご理解されてますでしょうか。 理解されていれば話が早いです。 ASP.NET で開発する場合、イベントの多くはサーバ側で処理するものばかりです。 つまり動作としては、 1) ユーザーのブラウザ上で何らかのトリガー(きっかけ)があり、Web サーバへ新しいページの内容をもらいに行く。 2) サーバがブラウザへ送るべき情報を処理し、html ソースをブラウザへ返す。 3) サーバから帰ってきた html をブラウザが表示する。 となります。サーバへ一度問い合わせに行くことを PostBack って言ってます。 一方、JavaScript はブラウザ上で動きます。 1) ユーザーのブラウザ上で何らかのトリガーがあり、すでにブラウザに読み込まれている JavaScript の関数が呼び出される。 2) JavaScript 関数で何らかの処理をする。 3) 関数の結果がブラウザの表示に何らかの変化をもたらす(場合もある)。 (1)~(3)の流れはすべてユーザーのブラウザ上で行われるため、サーバへの問い合わせは発生しません。 さて、mugi-cha さんが実現したいイメージはどちらでしょうかね。 「テキストボックスの値が変わったとき」というのはもっと具体的に、どんな場合でしょうか。 たとえば「ユーザーが文字を入力する中で、1文字でも変化があれば」というのがトリガーだとすると、1文字入力または削除するたびにサーバと通信をしてブラウザ上の表示が再読み込みされてしまいます。 これじゃぁ忙しすぎますよね? であれば、JavaScript で実現する方向で考えたほうが良いです。 「ユーザーがある程度の文字列を入力したあと、ボタンをクリックする」のように、最後に何らかのトリガーを発生する場合であれば、サーバへ問い合わせに行って処理を行っても問題ないでしょう。 この場合は ASP.NET の得意分野ですので VB でガシガシと書いてください。

mugi-cha
質問者

お礼

ご回答どうもありがとうございます。 やりたいのはユーザー側で計算値を入れてその結果を画面に表示するのでサーバへの問い合わせは(計算を表示させる時点では)必要ないです。ASP.NET使用でもユーザー側のブラウザの表示変更部分はJavaScriptで記述しなければならないのでしょうか? 質問をした後 JavascriptのOnChangeで動くようだということは分かったのですが・・・ 質問の内容が変わってしまうので改めて質問したほうがよかったかな・・・ 本当にどうもありがとうございました(^^)

関連するQ&A

  • ASP.NET/VBでのユーザコントロールを使用したプログラム

    開発環境:VS2005 言語:ASP.NET(VB) 質問させてください。 現在ASP.NETでプログラムを作っています。 プログラム等は経験なくほぼ初心者です。 内容としては テキストボックス(txtB)1個のユーザコントロールを ボタン(btn1)1個とテキストボックス(txtA)1個のフォーム(aspx)に貼り付け、 ボタンを押下することでフォームのテキストボックス内の値を ユーザコントロールのテキストボックスに表示させるという プログラムを作りたいのですがうまくいきません。 色々調べたのですが、 ユーザコントロールのテキスト内の値をフォームのテキストに表示させる方法は あったのですが逆の方法は見つけられませんでした。 説明等わかりにくいところもあるかもしれませんが 回答よろしくお願いいたします。

  • VB2005でASP.NETを使用してwebサイトを作成しております。

    VB2005でASP.NETを使用してwebサイトを作成しております。 ボタンをクリックした際、ラベルに「処理中」などを表示させて DB更新などの処理を行い、終了後に「終了」などをラベルに表示したく 設定を行っているのですが画面に反映されません。 ボタンクリックイベントの終了のタイミングでラベルの内容が表示されます。 webなのでサーバー側で処理し結果をHTML?でクライアントに返してブラウザ表示している仕様上、 処理途中のラベルの値をクライアント側に反映することはできないのでしょうか??

  • ASP.NET 動的に行を増やすTable

    ASP.NET(VB)アプリケーションでボタンが押される度に、 行を追加するTableを作りたいです。 初期表示時にPage_Initで5行のtableを作成するようにしています。 ボタンクリックイベントで行数を増やしていくのですが、 他のコントロール(asp.textbox)のテキストチェンジイベントでPostBackが発生すると、 元の5行に戻ってしまいます。 Page_Initで5行と指定しているためなので、 ここの指定数をPostBack前に保持した行数にすれば良いと思ったのですが、 もっと他にスマートな方法はありませんでしょうか? もし、保持する方法をとる場合は、セッションなどで保持するべきでしょうか?

  • テキストボックスで[Return]キー押した時に勝手にボタンクリック

    あるテキストボックスとあるボタンがあります。 テキストボックスに入力して、リターンキーを押した場合に 勝手に、あるボタンのクリックイベントが走ってしまいます。 これはなぜでしょうか? ちなみに、言語は、Delphi .net  WEBプログラム作成中です。

  • asp.net  VB、HTML

    asp.netでプログラミングするには VBの知識とHTMLの知識とどちらが必要ですか? もしくはどちらも必要ですか? もしくはasp.netという言語があるのでしょうか?

  • ASP.NETのWebフォームでカレンダーを

    VS2005 ASP.NETのWebで 日付のテキストボックスをクリックすると カレンダーが表示され、テキストボックスに 2008/04/25 と表示されるようにするにはどしたらいいでしょうか?

  • 【ASP2.0】TextBoxのフォーカスアウトでPostBackを実装させたい

    ASP.NET+VB.NET(2.0)でWebアプリを作成しております。 TextBoxのTextChangedイベントは値が変更したときにしか発生されない ようですので、値が変更されなくてもTextChangedイベントとしてサー バサイドで処理をしたいのですがよい方法が思いつきません。 TextBoxにJavaScriptのonBlurでTextChangedイベントを擬似的に発生さ せる方法をご存じの方、よろしくお願いいたします。

  • ASP.NETでMsgBox

    ASP.NETではMsgBoxコマンドが使えないので、 それに代わるようなダイアログボックスを表示 させる方法を教えてください。 よろしくお願い致します。 使い方としては、 テキストボックスに入力した値と データベースから引っ張ってきた値を 比較して違えばダイアログボックスで 注意するというものです。

  • 初歩の質問です。

    VS2005でASP.NETをやっているのですが、貼り付けたボタンやテキストボックスのイベントとかは、稲妻ボタンで簡単にメソッドのインターフェースが自動でできますが、PageのイベントはLoad以外は自分で書いています。 そこで質問です。Pageについて、他の部品と同様に稲妻ボタンを押すなどして、イベント一覧を表示させ、ダブルクリックでメソッドの器が簡単にできる方法はないでしょうか。第2引数の型を毎回調べるのもあれだなと思いまして。 よろしくおねがいします。

  • ASP.NET 動的コントロールのフォーカス移動

    ASP.NET(VB)で開発しています。 Page_init時に生成されるテキストボックス1、2(動的コントロール)を表示します。 テキストボックス1のテキストチェンジイベント時に テキストボックス2にフォーカスが移動するようにしたいです。 テキストチェンジでPostBackが発生し、サーバ側でテキストボックス2.Focus() と記述しているのですが、動作は、テキストボックス2に フォーカスが移らず、画面上のどこにもフォーカスがあたっていない状態になってしまいます。 動的コントロールへ、PostBack時にフォーカス移動させるにはどうしたら良いか お願いいたします。

専門家に質問してみよう