フォーム
更新 : 2007 年 11 月
HTML フォームとは Web ページの一部分であり、コンテンツ、マークアップ タグ、コントロール (チェック ボックス、オプション ボタン、メニューなど)、およびこのようなコントロールのラベルを含んでいます。ASP.NET モバイル Web ページでは、フォームは Microsoft ASP.NET テクノロジをさまざまなデバイスに拡張します。基本的な機能の詳細については、「ASP.NET Web ページの概要」を参照してください。
ASP.NET モバイル Web ページでは、フォームはページ オブジェクトのブラウザ機能とページをレンダリングするコードとのインターフェイスです。フォームは、ページのロジックを再利用可能なコンポーネントにカプセル化にするコントロールのコンテナです。また、フォームによってコードとページのコンテンツを分離できます。
フォーム アクティベーション
ASP.NET モバイル Web ページは、それぞれアクティブなフォームを 1 つ持ちます。フォームをアクティブにするには、次の 3 通りの方法があります。
ページに最初にアクセスすると、ページ上の最初のフォームがアクティブになり、Activate イベントが発生します。
モバイル Web ページの ActiveForm プロパティを設定すると、別のフォームがアクティブになります。
他のフォームにリンクされている Link コントロールを使用すると、リンクをクリックしたときにそのフォームがアクティブになります。
2 番目と 3 番目の方法では、それまでアクティブになっていたフォームの Deactivate イベントを発生させた後、目的のフォームの Activate イベントを発生させます。
ユーザーが現在のページから別のページに移動するタイミングを確実に判断する方法はありません。このため、ユーザーが最後にアクセスしたフォームは非アクティブにならず、そのフォームの Deactivate イベントが発生することはありません。
フォーム内のコンテンツの構成
個々のフォームにいくつでもコントロールを配置できます。ただし、操作を簡単にするために、フォームに追加するコントロールの数はできるだけ少なくすることをお勧めします。
ASP.NET は、対象のデバイスに応じて、コントロールを画面単位などの複数の単位に整理します。Form コントロールは、ページ内からの移動先として個別に指定できるコントロールの集まりを表します。たとえば、ページに 2 つのフォームが存在し、1 つのフォームには社員の個人情報が含まれ、もう 1 つのフォームには社員の雇用履歴が含まれている場合に、1 つ目のフォームにアクセスして個人情報のみを参照できます。
メモ : |
---|
他のページや外部 URL にあるフォームに移動することはできません。つまり、ページ内の特定のフォームに移動できる外部 URL はありません。ページを参照すると、1 番目のフォームが自動的にアクティブになります。別のフォームに変更するには、そのページの ActiveForm プロパティを設定する必要があります。 |
新しいフォームを作成するか、またはコントロールを既存のフォームに追加するかを決定する場合は、必要な機能で判断します。個別に指定できるコントロールの集まりが必要な場合には、新しいフォームを作成します。この方法は、ユーザーがアプリケーションの別の部分に移動する場合に特に有効です。そうでなければ、既存のフォームにコントロールを追加してかまいません。個々の Form コントロールは対話処理の別の構成単位と見なされるため、ASP.NET は (表示する領域が画面にある場合も) 複数のフォームを結合して 1 つに表示することはありません。
ページとフォームの作成の考慮事項
ページのインスタンスを作成すると、現在アクティブになっているフォームに関係なく、ページのすべてのフォームのインスタンスが作成されます。このため、ページのオーバーヘッドはページ上のフォームの数に応じて異なります。
ページでは、複数の要求に対して ViewState 管理を行うことができます。ページ上のすべてのフォームのインスタンスが作成されるため、すべてのフォームのすべてのコントロールをページから指定できます。これとは対照的に、ページ間の状態管理はかなり制限されており、カスタムのコードを作成して機能を追加する必要があります。
外部のページから指定可能なのは、ページの 1 番目のフォームだけです。一方、各ページにはそれ自身の URL があります。したがって、アプリケーションにおいて 2 つのフォームの関連性が強いほど、それらを同じページに配置する方が合理的になります。また、あまり使用しないフォームは、別のページに配置することをお勧めします。