使用 ASP+ DataGrid 控件来创建主视图/详细资料视图__教程 |
|
日期:2007-5-20 1:22:40 人气:159 [大 中 小] |
|
|
|
ItemCreated 的事件处理器类似于第 2 步中用于 Titles DataGrid 的事件处理器。此时,处理器修改标头行的控件结构,具体方法是添加表示上升和下降的图符,指示当前已排序的列和当前的排序方向。
这里有一个问题需要回答,DataGrid 为何不对其数据进行实际的排序。这主要有两个原因。首先, ASP+ 的数据源是一般的 ICollection,以便您在选择数据源时拥有最大的灵活性。数据源并不包含内置的排序语义。其次,也是更重要的一点, 在每次请求过程中,自动排序均会需要数据源的一个活动的实例。这不太适合用于显式数据绑定结构中,因为这需要您在页面的往返过程中访问和加载数据。
--------------------------------------------------------------------------------
第 5 步: 分页
DataGrid 提供显示特殊行的功能,该行包含用于显示页码和“下一步”/“上一步”浏览按钮的 UI。这一步添加了对 Authors 列表进行分页查看的功能。
图 6. 完成第 5 步后页面的屏幕快照
Authors DataGrid 来自:
Step5.aspx:
<asp:DataGrid id="authorsGrid" runat="server" ... AllowPaging="true" PageSize="5" OnPageIndexChanged="OnPageIndexChangedAuthorsGrid"> ...
<property name="PagerStyle"> <asp:DataGridPagerStyle BackColor="Tan" HorizontalAlign="Right" PageButtonCount="3" Mode="NumericPages"/> </property> </asp:DataGrid>
与排序类似,您必须设定几个属性并实施一个事件处理器,从而启用分页功能。启用分页功能的具体步骤是,将 AllowPaging 属性设定为 true,并将 PageSize 属性设定为一个正整数。 PageSize 属性确定了要在单页面中表现的数据源的值。
该样例还展示设定 PagerStyle 属性,从而使您可以对分页 UI 的视觉外观和布局进行定制。样例将分页器一次展示三个页码按钮,方法是将 Mode 设定为 NumericButtons,而将 PageButtonCount 属性设定为 "3",并使其向右对其。除了这些设置,您还可以选择“下一步”/“上一步”样式按钮,分页 UI 的位置,其颜色方案,等等。
要支持分页,就必须对 DataGrid 的 PageIndexChanged 事件进行处理,具体讨论见 Step5Page.cs。
Step5Page.cs:
namespace Samples { ...
public class Step5Page : Page {
// 处理作者网格中的 PageIndexChanged 事件,以 // 更新数据 protected void OnPageIndexChangedAuthorsGrid(object sender, DataGridPageChangedEventArgs e) { LoadAuthorsGrid(); } } }
PageIndexChangedEvent 的事件处理程序只是重新加载 DataGrid,从而自动呈现数据源中所有项目的分页视图。事件处理器是在 DataGridPageChangedEventArgs 的一个实例中传递的,该实例包含关于旧的页面索引和新的页面索引的信息。如果根据应用程序的状态,您确定不应更改页面索引,则可以仅将 DataGrid 的 CurrentPageIndex 属性设定回旧的页面索引,跳过重新加载数据。显式数据绑定模型使这成为可能。这里,直到对 DataBind 进行调用时 DataGrid 的内容才得到刷新。
DataGrid 支持一种备选的分页模式,您可以通过将 AllowCustomPaging 属性设定为 true 而启用该模式。在该模式中,您负责向 DataGrid 告知您的数据源中的值的总数,具体方法是设定 VirtualItemCount 属性。一旦处于该模式,您的数据源就想必只包含当前页面的值。在该模式中,仅需从查询检索最少数目的值,从而进一步优化您的数据访问。
--------------------------------------------------------------------------------
第 6 步: 原地编辑
DataGrid 支持对其行的原地编辑。这一步使用该功能,从而允许在 Titles DataGrid 内部进行编辑。
图 7. 完成第 6 步后的页面
Titles DataGrid 来自:
Step6.aspx:
<asp:DataGrid id="titlesGrid" runat="server" ... OnEditCommand="OnEditCommandTitlesGrid" OnUpdateCommand="OnUpdateCommandTitlesGrid" OnCancelCommand="OnCancelCommandTitlesGrid">
<property name="Columns"> <asp:BoundColumn HeaderText="ID" DataField="title_id" ReadOnly="true"> <property name="HeaderStyle"> <asp:TableItemStyle Width="100px"/> </property> </asp:BoundColumn> |
|
出处:本站原创 作者:佚名 |
|
|