□技術メモ - ASP.NET ※管理人の個人的な技術メモです。 このページの内容は正確であることを保証しておりません。 ----------------------------------------------------------- 〇Active Server Pagesについて ・IISをWebサーバとしてWebページを作成する技術。 以下はサンプル。 <% Response.Write("Hello world") %> -------- ○Hello, Worldの作成、基本事項など ・ASP.NETについて ASP.NETはHTMLやHTTPをできる限り意識しなくてもWebアプリが開発できるように設計されている。 以下ではASP.NETによるWebアプリ作成手順について確認していく。 ・Visual Web Developerを起動して、新規プロジェクトを作成する スタートページの「作成 Webサイト」のリンクを選択する。 ファイル-新規作成-webサイト を選択する。 標準ツールバーにある「新しいWebサイト」をクリック。 ・Web画面の作成 Default.aspxファイルが1つ作成されている。 デザインタブを選択して、デザイン画面に移行する。 ツールボックスからコントロールを選択して画面に配置する。 コントロールをダブルクリックしてソースを実装する。 デバッグモードで実行すると、Web画面が開いてデバッグ実行できる。 入力チェックを行うコードを書くには、LostFocusがないため、TextChangedを使う。 フォーカスが移動しただけでは通信は行われないことに注意。 ・コードビハインド、ポストバック、イベントハンドラ Webブラウザからアクセスを受けると、asp.netはブラウザの種類を識別して最適なHTMLコードを生成する。 よって開発者はブラウザ間の差異を意識しなくてもよい。 VB6ではコントロールのコードとイベントは同じファイル上に記述したが、 HTML上のイベントに対する処理はPOSTされてWebサーバ上で実行されて再びWebページに戻される。 この仕組みをポストバックという。 ・Web Development Helper IEのアドイン・ツール。 Webサーバとの通信をログとして確認できる。 ・ViewState ASP.netは、直近の画面内のコントロールの値をViewStateに保持しており、 次に来るポストの情報と比較して、TextChangedを判定する。 また、コントロールのAutoPostbackプロパティをTrueにしておけば、 コンボボックスの値を変更したときにPOSTが発生するようになる。 ただしAutoPostbackプロパティを多用するのは操作性が低下するので最小限にとどめるべき。 -------- 〇ページ遷移 ・新しいWebページの追加 ソリューション エクスプローラのWebサイト項目を右クリック-新しい項目の追加-Webフォームを追加する。 以下のコードにより新しい画面を表示できる。 Response.Redirect("Default2.aspx?Data=" & TextBox1.Text") ・遷移先の実装 ページ2のPage_Loadイベント・ハンドラを下記のようにする。 Label2.Text = Request.QueryString("Data") ・クエリ文字使用時の注意 上記のようにクエリ文字を使用した場合、URL表示欄や履歴にデータが残ってしまう。 これを回避するにはセッションを使用すればよい。 以下のように記述する。 Session("Data") = TextBox1.Text Response.Redirect("Default2.aspx") 受け取りは以下の通り。 Label2.Text = Session("Data") ・セッションデータはメモリ上での管理なので、Webサービスの再起動時等により データが失われることがある。DB登録するなどで回避するのが望ましいらしい。 -------- 〇JavaScriptの呼び出し ・画面遷移はASP.NETで制御すればよいが、クライアント側でカレンダー等の子画面を表示するには JavaScriptを使う必要がある。 (詳細は内容精査中) -------- 〇検証コントロール ・ツールボックスに検証というタブがある。この中のコントロールが検証コントロール。 ・必須入力チェックを行うにはRequiredFieldValidatorコントロールを使えばよい。 (詳細は内容精査中) --------