当前位置:沸点梦工场 > WAP网页设计 > Asp.net wap开发教程 > 浏览文章

ASP.NET 移动控件--Form 控件

互联网 2007年06月21日 【字体:

作为任意数目的控件的容器,Form 控件还表示 MobilePage 对象中控件最外面的分组。由于窗体通常包含多个控件,您可以将窗体视为能够从应用程序中浏览到的一组单独可寻址的控件。

当单个窗体上具有多个控件时,ASP.NET 将这些控件分成用于适当目标设备的多个单元。但是,因为窗体被视为单独的叙述单元(一组单独可寻址的控件),所以 ASP.NET 不能在单个屏幕上结合多个窗体。

移动控件语法
必需的属性、默认值和具有代码特征的元素以粗体显示。

<mobile:Form
   runat="server"
   id="id"
   Font-Name="fontName"
   Font-Size="{NotSet|Normal|Small|Large}"
   Font-Bold="{NotSet|False|True}"
   Font-Italic="{NotSet|False|True}"
   ForeColor="foregroundColor"
   BackColor="backgroundColor"
   Alignment="{NotSet|Left|Center|Right}"
   StyleReference="styleReference"
   Wrapping="{NotSet|Wrap|NoWrap}"

   Action="url"
   Method="{Post|Get}"
   OnActivate="activateHandler"
   OnDeactivate="deactivateHandler"
   OnPaginate=changeHandler"
   Paginate="{True|False}"
   Title="formTitle">
Place child controls here. (optional)
</mobile:Form>
包容规则
以下控件可以包含 Form 控件。

控件 说明
System.Web.UI.MobileControls.MobilePage 必须包含一个或多个 Form 控件。

Form 控件可以包含以下控件。

控件 说明
System.Web.UI.MobileControls 的所有成员(MobilePage、Form 和 StyleSheet 对象除外)。 窗体可以包含任何其他 ASP.NET 移动控件(其他窗体或样式表除外)。
窗体必须包含“控件”列中介绍的一个或多个控件。
 

设备模板
有关如何指定以下模板的信息,请参见 <DeviceSpecific> 或 <Choice> 元素。

模板 说明
页眉 页眉模板呈现在窗体的开头。在分页模式下,每页上都呈现页眉。
页脚 页脚模板呈现在窗体的末尾。在分页模式下,每页上都呈现页脚。
脚本 脚本模板呈现在窗体的顶部。如果窗体被分页成多个屏幕,则每个屏幕都包含脚本模板。在基于 HTML 的设备上,紧接着开始 <head> 标记之后添加脚本模板中的代码;而在基于 WML 的设备上,紧接着开始 <card> 标记之后添加。

页眉和页脚模板可以是与设备无关的模板集的一部分。如果模板集与设备无关,则模板必须包含移动控件。

特定于设备的行为
如果在级联到单个控件的 Form 控件上设置了样式属性,则适用于单个控件的任何特定于设备的行为都将应用于这些样式属性。

对于支持在控件间使用 TAB 键的设备,Tab 键顺序是由控件在页上显示的顺序或(当动态添加控件时)向页上添加控件的顺序确定的。

设备语言 行为描述
HTML 如果窗体定义了 Title 属性,则在文档 <head> 节的 <title> 标记中写出标题。
如果呈现了模板,则在 <body> 标记中依次写出各个模板。

以下代码显示 HTML 页的基本大纲。

<head>
  <title>title</title>
</head>
<body>
Add header template here.
  Add form contents here.
Add footer template contents here.
</body>
您可以将上面的代码用于完全填满单个页的窗体或不进行分页的窗体。
 
WML 如果窗体定义了 Title 属性,则将标题作为窗体 <card> 标记的 Title 属性写出。(在较罕见的情况下,这在某些设备上会出现意外的结果,将不在 <card> 标记中写出。)
如果呈现了模板,则在 WML 卡片的 <p> 标记中依次写出各个模板。

以下代码显示 WML 页的基本大纲。

<card title="title">
<p>
header template
content template or form contents
footer template
</p>
</card>
 

示例
下面的示例创建一个具有两个标签的窗体。

[Visual Basic, C#]
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
    Namespace="System.Web.UI.MobileControls"
    Assembly="System.Web.Mobile" %>

<mobile:Form runat="server">
  <mobile:Label runat="server">Aardvark</mobile:Label>
  <mobile:Label runat="server">Bear</mobile:Label>
</mobile:Form>