コンテナ利用によるコンテンツの整理
ASP.NET モバイル コントロールでは、Form コントロールと Panel コントロールの 2 つのコンテナ コントロールを使用して、ASP.NET モバイル Web ページのコンテンツを整理します。これらのコンテナは、コントロールの論理的グループを作成します。また、ページの特定の範囲にスタイルを適用するのにも役立ちます。さらに、ASP.NET によるページのレンダリングを簡単にします。
メモ : |
---|
Visual Studio は、すべてのコンテナ コントロールの初期サイズを既定値に設定します。コンテナにコントロールが追加されるのに伴いコンテナのサイズが拡張されますが、リサイズ ハンドルを使用してコンテナのサイズを変更することはできません。 |
モバイル Web ページ
モバイル デバイス用のコンテナ、コンテンツ、およびコントロールは、MobilePage クラスから派生したモバイル Web ページ上に存在します。モバイル Web ページは、あらゆる ASP.NET Web サイトで ASP.NET Web ページと共存させることができます。モバイル Web ページは、Web サーバーをポイントする URL と関連付けられます。各 MobilePage インスタンスは、ページのテキストとコントロールで構成される Form コントロールを少なくとも 1 つ含んでいる必要があります。ASP.NET Web ページとは異なり、モバイル Web ページには複数の Form コントロールを含めることができます。StyleSheet 以外のコントロールは、すべて Form コントロールに存在する必要があります。
Visual Studio で新しいモバイル Web ページを作成すると、既定で最初のフォームがページに追加されます。
コントロールの配置
コントロールは、MobilePage 上に順次配置されます。これは ASP.NET Web ページとは異なる点です。Web ページでは、横並びコントロールとコントロールの絶対ポジショニングがサポートされています。ASP.NET モバイル コントロールでは幅広いハードウェア デバイスがサポートされているため、アプリケーションはコントロールの横並び配置を保証できません。特に、WML デバイスでは顕著です。ただし、ASP.NET モバイル コントロールの多くは、BreakAfter プロパティを公開しています。ほとんどのデバイス、特に HTML をサポートするデバイスについては、このプロパティを false に設定することで、次のコントロールが同じ行から開始されます。
メモ : |
---|
Visual Studio のデザイン ビューでは、BreakAfter が false に設定されていても、コントロールが横並び表示されません。 |
ASP.NET モバイル コントロールでは、コントロールの絶対ポジショニングはサポートされていません。デザイン ビューでは、ユーザーに表示する順序でコントロールをフォームやパネルに追加できますが、コントロールがモバイル デバイス画面にレンダリングされるときの絶対位置を定義することはできません。
Visual Studio では、モバイル Web ページおよびコントロールの外観を特定のデバイス向けにカスタマイズできます。この柔軟性により、表示に使用されるデバイス上に、機能的に使いやすく、見た目にも好感が持てる外観をアプリケーションは提供できます。詳細については、「特定のデバイスを対象とした ASP.NET モバイル Web コントロールのカスタマイズ」を参照してください。
コントロールをツールボックスからフォームまたはパネルにドラッグする場合は、コントロールをページの適切な位置でドロップして正しく位置付けてください。
フォーム
モバイル Web ページは、Form コントロールにあるコンテンツとコントロールをすべて表示します。各ページには少なくとも 1 つのフォームが含まれている必要があり、実行時には一度に 1 つのフォームがページに表示されます。表示されているフォームがアクティブ フォームです。ページが読み込まれると、アプリケーションはページで定義されている最初のフォームを既定でアクティブ フォームとして使用します。アプリケーションでは、ページが読み込まれた場合やユーザーの選択に応じて、ActiveForm プロパティを使用してプログラムからアクティブ フォームを設定できます。
モバイル ページは、ステータス情報を保持する機能が制限されています。ページをフォームへと編成することで、ページ間でステータス情報を渡す場合よりも豊富なステータス情報をフォーム間で渡せます。ステータス情報を渡せることで、アプリケーションがサーバーとやり取りしなければならないデータ量を減らせます。
さらに、ASP.NET モバイル Web ページを表示するデバイスでは、通常、デスクトップ アプリケーションのブラウザよりも小さな画面領域が使用されます。フォームを使用しないと、同等の情報量を表示するためにアプリケーションでより多くのページ数を作成する必要が生じます。アプリケーションを多くのページに分割するのではなく、ページを複数のフォームに分割し、そのフォームを個別に表示できます。この機能は、デスクトップ アプリケーションとモバイル向けアプリケーションで使用する多数のページ間の 1 対 1 の関係を管理するのに役立ちます。
ページ上のすべてのフォームは、同じページ コードを共有します。したがって、複数のフォームで同じプロパティとメソッドを使用できます。
既存のページ上のフォームにコントロールのグループを挿入するか、あるいは新しいページを用意してそこに挿入するかを判断する場合、トレードオフを考慮する必要があります。考慮が必要な要素には次のものがあります。
読み込み時間ページが読み込まれると、ページ上のすべてのフォームがインスタンス化されます。フォーム数が多いページの場合、その数が少ないページの場合よりも読み込み時間は長くなります。
ナビゲーション時間同じページ上にあるフォーム間の移動は、新しいページを読み込むよりも速く行えます。新しいページに含まれるコントロールの数が少なくても、フォーム間の移動の方が速く行えます。
ステータス情報ページからページに移動するよりも、フォームからフォームに移動する方が、より豊富なステータス情報を保持できます。
アドレスの指定可能性アプリケーションが使用するすべてのページには、明確な URL が付きます。対照的に、ページの最初のフォームだけが、他のページから指定可能です。
Visual Studio で新しいモバイル Web ページを作成すると、そのページには 1 つの空のフォームが含まれます。その他のフォームはツールボックスから追加できます。また、個々のフォームにコントロールを追加する場合もツールボックスを使用します。テキストのコンテンツを追加するには、フォームにテキストを直接入力します。
パネル
フォーム内のコントロールをグループ化するには、Panel コントロールを使用します。これにより、StyleSheet オブジェクトをグループ全体に適用できます。詳細については、「StyleSheet コントロールの概要」を参照してください。
また、パネルを使用すると、アプリケーションが改ページ調整を判断するのに役立ちます。ASP.NET は、画面上の 1 つのパネルですべてのコントロールを同時に保持しようとします。
アプリケーションにパネルを追加するには、ツールボックスからパネルをドラッグします。パネル内のすべてのコントロールは、パネルのスタイルを継承します。パネルは、フォームや他のパネルに挿入できます。アプリケーションは、パネルを表示したり非表示にしたりする際に、そのパネルに含まれるコントロールに同じ表示/非表示の操作を適用します。さらに、アプリケーションは、動的に作成するコントロール用のコンテナとして、パネル コントロールを使用できます。