分享
 
 
 

ASP.NET:DataGrid控件的分页功能

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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="&amp;gt;上一页" PrevPageText="&amp;lt;下一页" 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>

DataGrid1控件的属性在上面的HTML代码中已经设置好了,那么,我们下面关心的就是数据绑定部分了。当然,任何数据绑定是少不了与数据库的连接工作。

DataGrid_Sample1.aspx的逻辑代码页面(DataGrid_Sample1.aspx.vb)中的代码如下:

'----code begin----

'引入命名空间

Imports System

Imports System.Data

Imports System.Web.UI

Public Class DataGrid_Sample1

Inherits System.Web.UI.Page

#Region " Web 窗体设计器生成的代码 "

'此处省略了窗体设计器生成的代码

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'在此处放置初始化页的用户代码

If Not IsPostBack Then

'判断是否是第一次浏览该页面

'调用数据绑定过程

getdata()

End If

End Sub

'读取数据信息

Sub getdata()

Dim connstr As String '声明数据库连接字符

Dim mycon As OleDb.OleDbConnection

'因为使用Aeecss数据库,所以声明OleDConnention对象

Dim mycmd As OleDb.OleDbDataAdapter

'声明DataAdapter对象

Dim mysql As String

'声明Command命令的 SQL字符串

Try

connstr = "provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "\StudentInfor.mdb"

'为连接字符串赋值

mycon = New OleDb.OleDbConnection(connstr)

'实例化Connection对象

mysql = "Select id,name,sex,class,tel ,email from student"

'设置SQL语句,即查询数据库中所有内容

mycmd = New OleDb.OleDbDataAdapter(mysql, mycon)

Dim dt As Data.DataSet = New Data.DataSet

'声明DataSet对象,并实例话

mycmd.Fill(dt)

'填充数据,即在内存中生成DataSet模型数据库

DataGrid1.DataSource = dt.Tables(0)

'为DataGrid1控件指定数据源

DataGrid1.DataBind()

'执行绑定

Catch ex As Exception

Response.Write("程序出错,信息描述如下:<br>" & ex.Message)

Finally

mycon.Close()

End Try

End Sub

'DataGrid1控件的翻页事件

Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged

DataGrid1.CurrentPageIndex = e.NewPageIndex

getdata()

End Sub

End Class

'--code end -----

在DataGrid1控件的翻页事件过程中, “DataGrid1.CurrentPageIndex = e.NewPageIndex”语句更改了DataGrid1控件当前页码,然后调用getdata过程来获取数据。在这条语句里CurrentPageIndex表示当前页面索引,NewPageIndex表示请求的新的页码索引。这里我们需要注意的时,DataGrid控件的P

[1] [2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有