WSS3SDK之:Mobile开发之页面布局与分页
单独一个MobileDefaultTemplates.ascx文件中包含了所有用于mobile页面的渲染模板。该用户控件文件位于Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES目录中。通过mobile渲染框架模板会被从这里动态加载。通过放置包含渲染模板定义的自定义的.ascx文件到该目录,并赋予这些控件合适的控件ID,您可以覆盖默认发布到mobile页面中的控件。
页面布局
每个WSS mobile页面被分成页眉,内容,和页脚三部分,之间以横线分割。页面区域包含了网站、列表或条目的标题。内容区域在主页上显示列表的清单,在列表视图页面中显示条目,在列表项窗体页面中显示字段。页脚区域包含了操作的URL,用于操作列表项和导航到其他页面。
Mobile页面中的默认控件指的是定义在MobileDefaultTemplates.ascx文件中的渲染模板,其中定义了页面中用到的子模板和渲染控件。页眉和页脚区域实现自ASP.NET的DeviceSpecific模板,即使当内容区域分页时也会始终显示。
下面的例子展示了用于默认首页mbllists.aspx中的模板:
RunAt="Server"
PageType="HomePage"
Paginate="true">
<DeviceSpecific>
<Choice>
<HeaderTemplate>
<SPMobile:SPMobileControlContainer
RunAt="Server"
Weightless="true">
<SPMobile:SPMobilePageTitle
RunAt="Server" />
<SPMobile:SPMobileComponent
RunAt="Server"
TemplateName="MobileDefaultSeparator" />
</SPMobile:SPMobileControlContainer>
</HeaderTemplate>
<FooterTemplate>
<SPMobile:SPMobileControlContainer
RunAt="Server"
Weightless="true">
<SPMobile:SPMobileComponent
RunAt="Server"
Templatename="MobilePaginateNavigation" />
<SPMobile:SPMobileComponent
RunAt="Server"
TemplateName="MobileDefaultSeparator" />
<SPMobile:SPMobilePageNavigation
RunAt="Server" />
</SPMobile:SPMobileControlContainer>
</FooterTemplate>
</Choice>
</DeviceSpecific>
<SPMobile:SPMobilePageContents RunAt="Server" />
</SPMobile:SPMobileForm>
标记SPMobilePageContents插在页面的body区域,他随着运行时和站点模板,列表模板或窗体的不同而不同。例子中的其他控件时TemplateName属性来标识定义在MobileDefaultTemplates.ascx中的一个渲染模板。
自定义控件
如果要根据站点模板的类型为首页应用特定的渲染,根据列表模板类型使用不同的列表视图,或列表项窗体,您可以通过复制MobileDefaultTemplates.ascx文件来添加一个自定义渲染模板。
如果要应用特定的渲染,可以定义一个RenderingTemplate控件,使其全局唯一的ID为下列格式:
主页
Mobile_SiteTemplateName_HomePage_Title
Mobile_SiteTemplateName_HomePage_Contents
Mobile_SiteTemplateName_HomePage_Navigation
列表视图
Mobile_ListTemplateID_View_Title
Mobile_ListTemplateID_View_Contents
Mobile_ListTemplateID_View_Navigation
列表窗体
Mobile_ListTemplateID_NewForm_Title
Mobile_ListTemplateID_NewForm_Contents
Mobile_ListTemplateID_NewForm_Navigation
Mobile_ListTemplateID_EditForm_Title
Mobile_ListTemplateID_EditForm_Contents
Mobile_ListTemplateID_EditForm_Navigation
Mobile_ListTemplateID_DispForm_Title
Mobile_ListTemplateID_DispForm_Contents
Mobile_ListTemplateID_DispForm_Navigation
将SiteTemplateName替换成站点定义的整数ID号,或其名称(比如,STS或MPS)。将ListTemplateID替换成列表类型的整数ID号或对应的SPListTemplateType值。
分页
WSS使用ASP.NET 2.0的分页机制,从而在下列页面的内容区域中提供分页的支持:
- bloghome.aspx
dispform.aspx
disppost.aspx
mbllists.aspx
view.aspx
viewcomment.aspx
更多ASP.NET分页的信息可以参考ASP.NET Mobile Controls:Pagination。