使用 ASP+ DataGrid 控件来创建主视图/详细资料视图6
点击次数:17 次 发布日期:2008-11-26 11:12:28 作者:源代码网
|
源代码网推荐 源代码网推荐 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> 源代码网推荐 <asp:BoundColumn HeaderText="Title" DataField="title" ReadOnly="true"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="250px"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 <asp:BoundColumn HeaderText="Published" DataField="pubdate" 源代码网推荐 DataFormatString="{0:MMM yyyy}" ReadOnly="true"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="100px"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 <asp:BoundColumn HeaderText="Price" DataField="price" 源代码网推荐 DataFormatString="{0:c}"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="50px"/> 源代码网推荐 </property> 源代码网推荐 <property name="ItemStyle"> 源代码网推荐 <asp:TableItemStyle HorizontalAlign="Right"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" 源代码网推荐 UpdateText="OK"/> 源代码网推荐 </property> 源代码网推荐 源代码网推荐 ... 源代码网推荐 </asp:DataGrid> 源代码网推荐 源代码网推荐 通过处理控件的 EditCommand、 UpdateCommand 和 CancelCommand 事件来达到在 DataGrid 内进行编辑的目的。 源代码网推荐 源代码网推荐 Columns 集合包含一个名为 EditCommandColumn 的新的列。该列自动创建每行右侧的按钮集。为只读模式中的各行创建 Edit 按钮,并为编辑模式中的各行创建 Update 和 Cancel 按钮。列的 EditText、 CancelText 和 UpdateText 属性用来指定按钮的文本。注意,也可以将文本设定为 HTML 标记,从而为这些按钮使用图象。 源代码网推荐 源代码网推荐 最后,各种列的 ReadOnly<./font> 属性被设定为 true。这就防止对这些列中的数据进行编辑,即使列处于编辑模式。对于本样例,只有价格字段是可编辑的,因而所有其它 BoundColumns 均被标注为只读。 源代码网推荐 源代码网推荐 上面声明的事件处理器在下面展示的有代码支持的类中得到实施。 源代码网推荐 源代码网推荐 Step6Page.cs: 源代码网推荐 源代码网推荐 namespace Samples { 源代码网推荐 ... 源代码网推荐 源代码网推荐 public class Step6Page : Page { 源代码网推荐 源代码网推荐 // 更新当前选定的作者并重新加载与选定内容对应的书名 源代码网推荐 // 网格 源代码网推荐 protected void LoadTitlesGrid() { 源代码网推荐 UpdateSelection(); 源代码网推荐 titlesGrid.DataBind(); 源代码网推荐 } 源代码网推荐 源代码网推荐 // 处理书名网格中的 CancelCommand 事件,以 源代码网推荐 // 不施用更改就结束编辑 源代码网推荐 protected void OnCancelCommandTitlesGrid(object sender, 源代码网推荐 DataGridCommandEv 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
