日期:2010-05-10  浏览次数:20413 次

  DataGrid 控件是一个基于模板样式的、多功能的、多列的数据绑定控件。在三个数据绑定控件中,DataGrid是功能最为强大的,其次时DataList控件,然后是轻量级的数据绑定控件Repeater。要自定义 DataGrid 中各列的布局,您可以将列类型设置为“模板”,然后修改列的模板。DataGrid 控件也可以无需模板,只需按照默认的设置即可进行呈现,这使得该控件成了用于报告方案的理想控件。 

    我们可以把DataGrid理解成是HTML里面的一个Table,Table是由行(TR)和列(TD)组成,而DataGrid的行其实是DataGridItem对象,而列就是DataGridColumn 对象。在DataGrid对象的属性集了我们可以看到Items和Columns 属性,它们分别就是DataGrid的行集和列集,也就是DataGridItem对象集合及DataGridColumn 对象集合。通过查看ASP.NET生成的HTML页的源代码,我们也可以发现,DataGrid的表现形式也就是Table。我们也可以把DataGrid理解成数据库里面的表,也是由行和列组成。就像我们建数据库表一样,我们首先要构造表的列,在创建一个DataGrid对象时,我们也是要先创建DataGrid的列。DataGrid的列有以下几种类型:BoundColumn(绑定列)、ButtonColumn(按钮列)、EditCommandColumn(编辑命令列)、HyperLinkColumn(超链接列)、TemplateColumn(模板列)。在使用hoDataGrid控件时候根据不同的类型,DataGrid控件就可以进行选择、编辑、删除、分页和排序。在本节里,我们将根据DataGrid控件常用的三大功能来详细介绍。

    9.2  DataGrid控件的详解

    9.2.1 DataGrid控件的分页功能

    在以往的ASP编程中,我们要实现页面的分页,就得花费很多的功夫编写代码来实现,但是在ASP.NET里,我们只需要对DataGrid控件的属性进行适当的设置,在指指点点中,就能实现强大的分页功能。

    像其他控件一样,在使用DataGrid控件之前,也必须引用声明,由于DataGrid控件的属性和选项属性比较多,下面列出几个常用的属性,格式如下:

<asp:DataGrid
id="DataGrid1"
runat="server"
AllowPaging="True"
AllowSorting="True">    
<SelectedItemStyle BackColor="#FFC080"></SelectedItemStyle> 
<EditItemStyle BorderColor="#E0E0E0" BackColor="Gray"> </EditItemStyle>   
<ItemStyle BorderColor="#C0C0FF" BackColor="#E0E0E0"> </ItemStyle>   
<HeaderStyle BorderColor="#C0C0FF" BackColor="#E0E0E0"> </HeaderStyle>
<FooterStyle BorderColor="#E0E0E0" BackColor="Silver"> </FooterStyle>
<PagerStyle NextPageText=">上一页" PrevPageText="<下一页" HorizontalAlign="Center" ForeColor="White"
BackColor="#336666" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>

    上面这些属性是DtataGrid控件几个常用的模板设置,其中几个我们比较生疏的是< HeaderStyle >、<FooterStyle>、<ItemStyle>和<AllowPaging>属性。

    HeaderStyle: 是用来这是表格页眉的样式 ,包括背景色,字体,表格宽度等等;
    FooterStyle:是用来设置表格底脚样式,包括背景色,字体,表格宽度等等;
    ItemStyle :是用来设置表格正文的样式,包括背景色,字体,表格宽度等等;
    EditItemStyle:用来设置编辑选项的样式;
    AllowPaging:表示是否允许分页,如果为False,则DataGrid控件将数据一页显示。
    AllowSorting:表示是否允许对字段进行排序。
    PagerStyle:用来设置分页样式。可以为“1 2 3”数字连接,也可以为“ 上一页 下一页”样式的连接。

    对于DataGrid控件的样式,Visual Studio.NET 2003提供了几种模板样式供用户套用,也可以利用属性生成器自行生成样式。我们可以通过DataGrid控件的属性面板里找到,如图9.4所示。


图9.4  DataGrid控件的属性面板

    我们先通过一个实例来简单的了解DataGrid的分页功能。

    在DataCon Web项目里新建一个Web 窗体,命名为DataGrid_Sample1.aspx,并为DataGrid_Sample1.aspx添加一个DataGrid1控件,如图9.5所示。


图9.5 为DataGrid_Sample1.aspx添加控件

    DataGrid_Sample1.aspx页面的主要HTML代码如下:

<form id="Form1" method="post" runat="server">
<asp:DataGrid
    id="DataGrid1"
    runat="server"
  AllowPaging="True"
   PageSize="5">
  <ItemStyle Font-Size="X-Small" BorderColor="#C0C0FF">
</ItemStyle>
<HeaderStyle Font-Size="X-Small"
BorderColor="#C0C0FF" BackColor="#99CCCC"></HeaderStyle>
<PagerStyle NextPageText="[下一页]" Font-Size="X-Small"
 PrevPageText=" [上一页]" BackColor="#66CCCC"></PagerStyle>
</asp:DataGrid>
</form>

 &n