更新:2007 年 11 月
无线设备使用的屏幕功能相差很大。有些屏幕支持丰富的内容显示,而有些仅显示几行单色文本。基本屏幕的内容经常必须分页才能正确显示。ASP.NET 移动控件使应用程序能够将窗体自动分成适合于目标设备的页。本节描述移动控件如何参与分页过程。
了解分页权重系统
窗体分页过程基于一个权重系统。每个页适配器通过 OptimumPageWeight 属性返回窗体的最佳页权重。
设备适配器集可以为页以及每个控件提供最佳权重。这些权重的单元选择很灵活。虽然您可以调整适当的权重单元规范,但如果遵循默认的单元系统,则可以对设备适配器集使用控件的默认权重。
![]() |
---|
默认单元系统基于一行 100 个单元,这是由 ControlPager 类的 DefaultWeight 常数指示的。 |
分页时,ASP.NET 循环访问控件树,计算权重并分配页码。ASP.NET 呈现当前页后,执行适当的分页。使用 FirstPage 和 LastPage 属性可以确定控件的已分配页。
分页算法考虑了禁止跨多页进行分页的控件设置。例如,您可能不希望 Panel 控件的内容分散在几页上。要禁止对控件内容分页,请在控件的实现中重写 PaginateChildren 属性并返回 false。
支持基本分页
要确保正确分页,控件必须重写 VisibleWeight 属性,然后返回一个权重。默认权重为 100,它对应于默认单元系统中的一行。
或者,如果希望控件权重根据设备而定,则控件适配器可以用适合特定设备的值重写 VisibleWeight 属性。VisibleWeight 属性的 MobileControl 基类实现从设备适配器中检索该值。
内部和自定义分页的设计
一些控件使用分页机制将控件中的内容分散到多个窗体页中,即使它们不包含子控件。例如,包含大量项的 List 控件可能会将自身分为多个窗体页。这称为内部分页。能够内部分页的控件也能够自定义分页。自定义分页为应用程序提供了一个回调函数,它允许应用程序按需要向控件提供必要的数据以及组合相关的数据。
禁止分页
分页是将控件的内容分到多个页中。某些情况下,可能需要禁止控件分散到多个页中。例如,您可能希望禁止 Panel 控件分页。Panel 控件具有 Paginate 属性,该属性默认情况下被设置为 false。