使用 ASP+ DataGrid 控件来创建主视图/详细资料视图__教程 |
|
日期:2007-5-20 1:22:40 人气:159 [大 中 小] |
|
|
|
<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 状态检索的数据,数据是在会话启动过程中存为该状态的。
--------------------------------------------------------------------------------
第 2 步: 带有多页面的主/详细资料视图
创建主/详细资料视图的一个方法就是使用多页面。在该方法中,主查询中的选定值的详细资料视图被显示在次要页面上。在关于选定内容的信息中,该次要页面作为 URL 请求中的一个参数得到传递。
图 3. 第 2 后的页面,展示详细资料页面的浮动视图
Step2.aspx 包含对 DataGrid 的更改,以使其包含一个名为 DataGrid 声明的列。
Step2.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"> |
|
出处:本站原创 作者:佚名 |
|
|