更新:2007 年 11 月
ASP.NET 移动控件提供分页,分页自动将窗体中的内容分为较小的呈现内容组。使用分页时,这些内容组自动格式化,以适合目标设备的大小。窗体还呈现可用来浏览到其他页的用户界面 (UI) 元素。
默认情况下,窗体的分页是不活动的。若要激活分页,请将 Form 控件的 Paginate 属性设置为 true。如果 Paginate 为 false,则设置窗体内控件的 Paginate 属性没有任何影响。Form 控件还提供了其他属性(如 PageCount、CurrentPage 和 PagerStyle),使用这些属性可以控制分页行为。
您也可以使用窗体的 ControlToPaginate 属性为窗体上的特定控件指定分页。
分页使用建议
对 ASP.NET 移动网页中的小型交互式窗体(如输入窗体)进行分页通常是多余的。但对于显示大量文本或数据的窗体来说,使用分页以在多个屏幕上显示信息是很有效的。
如果页中包含大量随时间发生改变的数据(例如在电子商务站点中,数据要经常更新),则可以考虑使用自定义分页。有关使用自定义分页的更多信息,请参见本主题后面的“自定义分页”一节。
如果某些设备尝试显示的信息超出了它们的内存能够处理的范围,则会发生内存错误。分页不仅在显示包含大量文本或数据的窗体时很有效,而且还可以防止在用户的设备上出现这类内存错误。
设备限制
某些 HTML 设备不支持 JavaScript(JavaScript 属性为 false)。如果窗体的 Action 属性被设置为非空字符串,则窗体在不支持 JavaScript 的 HTML 设备上不会分页。
内部分页
对于能够自动分页且不包含子控件的移动控件,它们使用内部分页。例如,List 控件可以对自己的项进行分页,使窗体能够将单个列表分散在多个页上。不支持内部分页的控件必定要么包含子控件,要么以原子方式出现在单一屏幕中。
支持内部分页的控件使用 PagedControl 基类为内部和自定义分页派生分页属性、方法和事件。某些属性(如 FirstVisibleItemIndex 属性)提供了对页中个别项的访问。而另一些属性则提供了项的权重和可见项的数目。
List、ObjectList 和 TextView 控件支持内部分页。
自定义分页
支持内部分页的控件也支持自定义分页。通常,控件需要立即提供所有页的数据,然后放弃除当前页之外的所有页。对于自定义分页,控件引发一个仅加载当前页项目的事件。您可以在 ItemCount 属性中指定项目的总数。如果更改 ItemCount 属性,使其不为默认值零,则控件将使用自定义分页。在这种情况下,控件引发 LoadItems 事件,该事件能够调用应用程序指定的事件处理程序,以提供当前页的各个项。事件处理程序检索适当的数据,并将这些数据绑定到控件。