著者: Builder、Tony Patton
ASP.NET は強力なプラットフォームを提供しますが、開発者は JavaScript などの成熟したテクノロジを無視すべきではありません。この記事では、トニー
Patton は、Web 開発において JavaScript を ASP.NET コントロールと統合する方法を説明します。
Web 開発プラットフォームは柔軟性と多数の機能を提供しますが、多くの場合、必要なタスクを完了するために既存のテクノロジーに依存したい、または依存する必要があります。ASP.NET は強力な開発プラットフォームを提供しますが、同時に JavaScript などの成熟したテクノロジーも必要とします。この記事では、JavaScript コードを ASP.NET コントロールに接続する方法について説明します。
従来の方法
通常、Web アプリケーションでポップアップや確認ウィンドウ、その他のクライアント側の機能が必要な場合は、必要な JavaScript メソッドを作成し、必要に応じて呼び出します。たとえば、リスト A には、ユーザーがフォーム送信を続行またはキャンセルするために使用できる確認ウィンドウが含まれています。
送信ボタンを選択すると、JavaScript のconfirmSubmit メソッドが呼び出され、この確認プロンプトにより、ユーザーはフォームの送信を続行するか (「確認」を選択)、キャンセルするか (「キャンセル」を選択) できます。
上記のコードは計画どおりに動作しますが、ASP.NET などの開発プラットフォームで作業する場合はそれほど単純ではありません。
ASP.NETの代替オプション
ASP.NET は、入力ボタンやテキスト ボックスなどの HTML 要素の使用をサポートしていますが、ASP.NET 独自の開発モデルに基づいて追加機能を提供するコントロール要素の完全なセットが存在します。
JavaScript を ASP.NET にアタッチすることは、HTML/JavaScript を直接行うアプローチほど単純ではありません。ASP.NET プログラミング モデルには、スクリプト ブロックをページ要素にアタッチするためのメソッドが基本ページ クラスに用意されています。次のメソッドを使用して、JavaScript をページまたはページ要素に添付または統合できます。
私
RegisterClientScriptBlock: ページ オブジェクトにスクリプト ブロック、クライアント側スクリプトを含めることを許可します <form
ルナト=
スクリプト ブロックは、server> 要素の開始タグの後に実行を開始するため、2 つの <script> 要素タグを追加する必要があります。
私
RegisterOnSubmitStatement: ページ オブジェクトの OnSubmit イベントにスクリプト ブロック/メソッドを割り当てることができます。
私
RegisterStartupScript: RegisterClientScriptBlock メソッドと同様に、ページにスクリプト ブロックを含めることができます。このメソッドはページ オブジェクト <form にあります。
ルナト=
スクリプト ブロックは、server> 要素の終了タグの前に実行され、出力をオブジェクトとして送信するため、2 つの <script> 要素タグを追加する必要があります。
各メソッドは、key と script の 2 つのパラメータを受け入れることができます。key は、スクリプト ブロックに割り当てられた名前であり、この固有の key 値を使用すると、複数のサーバー制御インスタンスがスクリプト ブロックを要求できます。出力ストリームでスクリプトを再度実行します。2 番目のパラメータのスクリプトには、クライアントに送信される実際のスクリプトが含まれます。これは、完全な JavaScript コードまたはメソッドの名前です。
これらのメソッドは、VB.NET、C#、J#、またはその他の言語であっても、実際の ASP.NET ページ コードで使用できます。リスト B は、C# で記述された ASP.NET サンプル コードを示しています。
JavaScript メソッドは文字列変数を介して構築され、その値は 2 番目の引数として RegisterClientScriptBlock メソッドに渡され、実際のメソッド名はオブジェクトの属性を介して渡されます。
プロパティの Add メソッドは ASP.NET ボタン コントロールに割り当てられ、JavaScript イベントが最初のパラメーターとして渡され、メソッド名が 2 番目のパラメーターとして渡されます。
さらに、スクリプトの使用を続行する前に、スクリプトが登録されているかどうかを確認できる IsStartupScriptRegistered メソッドが使用されていることに気づくかもしれません。この問題には 2 つの方法があります。
私
IsStartupScriptRegistered: クライアントの起動スクリプトがページ オブジェクトに登録されているかどうかを確認する唯一のパラメータはスクリプトの名前です。
私
IsClientScriptBlockRegistered: クライアントのスクリプト ブロックがページ オブジェクトに登録されているかどうかを確認します。その唯一のパラメーターはスクリプトの名前です。
この問題を解決するもう 1 つの方法は、ページ クラスの RegisterOnSubmitStatement メソッドを使用することです。リスト C はリスト B の機能を繰り返していますが、異なる点は、confirmSubmit メソッドがページの click イベントではなく、ページの submit イベントに接続されていることです。ボタン。
この簡単な例は、JavaScript スクリプト ブロックと JavaScript スクリプトを ASP.NET ページのコントロールに組み込む方法を明確に示しています。ASP.NET コントロールを使用する場合、このアプローチはそれらのコントロールにスクリプトを添付するのに役立ちますが、 register メソッドを使用することもできます。プロジェクトの JavaScript を一元管理します。スクリプトを含むクラス ファイルを作成し、必要に応じてページ内で使用することができます。これにより、スクリプトを 1 か所で管理するだけで済み、アプリケーション内の 1 つ以上のページでの使用が容易になります。
どの開発プラットフォームを使用している場合でも、JavaScript はクライアント側の関数を開発するための標準です。幸いなことに、ASP.NET ページ クラスには、スクリプト ブロックとメソッドをページとそのコントロールに統合するためのメソッドが多数含まれています。