当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  使用 ASP+ DataGrid 控件来创建主视图/详细资料视图6

 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图6

点击次数:17 次 发布日期:2008-11-26 11:12:28 作者:源代码网
源代码网推荐      第 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>
源代码网推荐   <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)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华