使用 ASP+ DataGrid 控件来创建主视图/详细资料视图2
点击次数:23 次 发布日期:2008-11-26 11:12:32 作者:源代码网
|
源代码网推荐 源代码网推荐 序列的第一步展示了一个页面,其中包含单独一个 DataGrid 控件,用于显示来自数据源的一个只读作者列表。结果类似于 使用 ASP+ 列表绑定控件 (英文) 所取得的效果。 源代码网推荐 源代码网推荐 图 2. 完成第 1 步后的页面 源代码网推荐 源代码网推荐 DataGrid 声明来自: 源代码网推荐 源代码网推荐 Step1.aspx: 源代码网推荐 源代码网推荐 <asp:DataGrid id="authorsGrid" runat="server" 源代码网推荐 AutoGenerateColumns="false" 源代码网推荐 BackColor="White" 源代码网推荐 BorderWidth="1px" BorderStyle="Solid" BorderColor="Tan" 源代码网推荐 CellPadding="2" CellSpacing="0" 源代码网推荐 Font-Name="Verdana" Font-Size="8pt"> 源代码网推荐 源代码网推荐 <property name="Columns"> 源代码网推荐 <asp:BoundColumn HeaderText="ID" DataField="au_id"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="100px"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 <asp:BoundColumn HeaderText="Name" DataField="au_name"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="150px"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 <asp:BoundColumn HeaderText="State" DataField="state"> 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle Width="50px"/> 源代码网推荐 </property> 源代码网推荐 </asp:BoundColumn> 源代码网推荐 </property> 源代码网推荐 源代码网推荐 <property name="HeaderStyle"> 源代码网推荐 <asp:TableItemStyle BackColor="DarkRed" ForeColor="White" 源代码网推荐 Font-Bold="true"/> 源代码网推荐 </property> 源代码网推荐 源代码网推荐 <property name="ItemStyle"> 源代码网推荐 <asp:TableItemStyle ForeColor="DarkSlateBlue"/> 源代码网推荐 </property> 源代码网推荐 源代码网推荐 <property name="AlternatingItemstyle"> 源代码网推荐 <asp:TableItemStyle BackColor="Beige"/> 源代码网推荐 </property> 源代码网推荐 源代码网推荐 </asp:DataGrid> 源代码网推荐 源代码网推荐 上面的代码展示 DataGrid,该控件的各种属性已经过声明设定。 DataGrid 控件与其它 Web 控件如 Font、BackColor、ForeColor 和 BorderWidth 共享一组公用的样式属性。另外, DataGrid 提供仅适用于表的属性如 CellPadding。最后, DataGrid 提供附加的样式属性,这些样式属性影响其中各项目和列如 HeaderStyle、ItemStyle 和 AlternatingItemStyle 的表示。这些样式属性用于创建丰富多采且极富魅力的数据视觉效果。 源代码网推荐 源代码网推荐 DataGrid 支持从其所绑定的数据源自动生成列的功能。但是,在本例中, AutoGenerateColumns 属性已被设定为 false。因此必须借助要展示的列集对 Columns 集合进行初始化。从而可以更多地控制表现效果,诸如列的次序和标头以及与每列对应的样式。这一步中所定义的列均为 BoundColumns,从而可以通过其 DataField 属性,绑定到数据源的单独一个字段。您在以后步骤中可以看到, DataGrid 允许选择各种各样类型的列。 源代码网推荐 源代码网推荐 下面的类包含支持本页面的代码。 源代码网推荐 源代码网推荐 Step1Page.cs: 源代码网推荐 源代码网推荐 namespace Samples { 源代码网推荐 ... 源代码网推荐 源代码网推荐 public class Step1Page : Page { 源代码网推荐 源代码网推荐 protected DataGrid authorsGrid; 源代码网推荐 源代码网推荐 // 检索存入会话状态的应用程序数据 源代码网推荐 private DataSet GetSessionData() { 源代码网推荐 return (DataSet)Session["AppData"]; 源代码网推荐 } 源代码网推荐 源代码网推荐 // 检索 Authors 表 源代码网推荐 private ICollection GetAuthors() { 源代码网推荐 DataSet ds = GetSessionData(); 源代码网推荐 DataView dv = ds.Tables["Author"].DefaultView; 源代码网推荐 源代码网推荐 dv.RowFilter = String.Empty; 源代码网推荐 return dv; 源代码网推荐 } 源代码网推荐 源代码网推荐 // 将 Authors 表载入 DataGrid 源代码网推荐 private void LoadAuthorsGrid() { 源代码网推荐 ICollection authors = GetAuthors(); 源代码网推荐 源代码网推荐 authorsGrid.DataSource = authors; 源代码网推荐 authorsGrid.DataBind(); 源代码网推荐 } 源代码网推荐 源代码网推荐 // 超控 OnLoad,以在第一次请求过程中加载数据 源代码网推荐 protected override void OnLoad(EventArgs e) { 源代码网推荐 base.OnLoad(e); 源代码网推荐 源代码网推荐 if (!IsPostBack) { 源代码网推荐 LoadAuthorsGrid(); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 该类超越 Page 的 OnLoad 方法 (类似于实施 Page_Load),将 Author 列表作为 DataGrid 数据源进行加载。与其它服务器控件一样, DataGrid 实施显式的数据绑定模型,其中控件只在 DataBind 方法被调用时才列举器数据源中的值。这样设计各个控件,您就可以完全控制在哪个时间点需要数据源,并将无需数据时的数据访问降至最低,例如大多数的往返过程。这一点会在将来的步骤中得到证明。 源代码网推荐 源代码网推荐 代码还展示从 Session 状态检索的数据,数据是在会话启动过程中存为该状态的。 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
