欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据的显示与处理.ppt

    • 资源ID:6578780       资源大小:1.21MB        全文页数:194页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据的显示与处理.ppt

    第七章 数据的显示与处理,本章学习目标:本章主要讲解如何把数据库中的数据通过数据的列表控件显示出来并达到用户的要求,以及通过列表控件对数据库中的数据进行操作。通过对本章的学习,读者应该掌握以下主要内容:DataGrid控件的使用方法数据显示与处理的实际应用。例如,“伪邮件系统”中邮件的显示和附件标志的处理方式,7.1 伪邮件系统中邮件发送与接收说明,第七章 数据的显示与处理,7.2 邮件的发送 7.2.1 伪邮件发送界面说明 7.2.2 伪邮件发送程序 7.3 对于一个指定邮件的显示 7.3.1 DataGrid控件的介绍 7.3.2 DataGrid控件实现数据库记录的分页显示 7.3.3 DataGrid控件的记录 排序 7.3.4 DataGrid控件定制列元素 7.4.1 伪邮件的接收-收件箱程序 7.4.2 显示指定邮件的方法,7.1 伪邮件邮件的发送与接受说明,在本伪邮件系统中,在邮件的发送之前,必须首先要进行登录,登录成功之后才能进行邮件发送与接收。伪邮件系统中邮件的发送其实就是向“邮件数据表”中添加一条记录。工作过程是:用户在一个Web页面上填写收件人的用户名、主题、邮件正文以及所带的附件,然后点击“邮件发送”按钮,这时该页面的程序代码会执行一个操作把用户所填写的内容以及发件人的名字,当前写入数据表的时间(作为邮件的发送时间),写入“邮件数据表”中,即向该邮件数据表中添加一条记录。,7.1 伪邮件邮件的发送与接受说明,这里所说的邮件接收,其实就是一种把“邮件数据表”中收件人与用户在使用本伪邮件系统的登录名相同的所有记录显示出来,然后用户可根据邮件的状态来选择删除某一记录(邮件)或显示某一邮件的详细信息。强调的是为了能使用户感觉比较正规,一般接收者在打开邮箱以前,就能看到是否有新邮件到来,所以在邮件数据表中设立了一个“邮件标志”标志字段,当邮件标志的值为1时,表示该邮件是新邮件,即当用户向邮件数据表中添加一条记录时该标志字段被置为1;当邮件标志的值为0时,表示该邮件是用户已阅读过的邮件,即只要用户打开过一次一条新邮件记录,立即把这条记录的“邮件状态标志”设为0;当邮件状态标志的值为2时,表示此邮件在用户的垃圾箱中,即当用户把某一邮件记录扔到垃圾箱时,仅是把这条记录的“邮件状态标志”设为2。这样有利于程序员在编制程序时,能根据不同的情况列出不同的记录。例如:A用户要查询所有未读邮件,程序可以在邮件数据表中用这样的SQL查询语句:SELECT*FROM EMAIL WHERE D_EMAIL=A AND EMAIL_FLAG=1,7.1 伪邮件邮件的发送与接受说明,这个SQL查询语句用语言来解释就是“在邮件数据表email中筛选邮件的目的地址A并且邮件标志0的所有记录”。如果A用户要显示其收件箱的内容,应该显示“邮件数据表”中邮件的目的地址是登录名A,并且邮件标志小于2的所有记录(即除了垃圾箱内的邮件),其SQL查询语句:SELECT*FROM EMAIL WHERE D_EMAIL=A AND EMAIL_FLAG2,7.2.1伪邮件发送界面说明,Web邮件的发送界面一般来说都是通过一个HTML的框架结构来实现的。通常来说是把一个框架分成两个左右两个部分,左边部分是用户进行邮件操作所使用的菜单,如发邮件、收件夹、未读邮件、垃圾箱等等一些导航按钮,当用户单击这些导航按钮之后,右边的部分就显示相应的页面。下面来看一下写邮件的界面,如图7-1所示,该页面是用户“liubing”登录后进行写邮件的界面。,7.2.1伪邮件发送界面说明,在这个邮件的发送界面中有三个Web程序:框架结构程序,程序名:w7-1.aspx 左边的菜单选择程序,程序名:left.aspx 右边的发送邮件程序,程序名:sendmail.aspx 首先,介绍一下框架结构程序w7-1.aspx。下面是该程序的源代码:代码清单w7-1.aspx,7.2.1伪邮件发送界面说明,main_email本页需要框架结构,但是您的浏览器不支持它,7.2.1伪邮件发送界面说明,在此程序中,首先判断使用该程序的用户是否登录,如果会话变量“username”为空,则说明当前使用该程序的用户没有登录,那么程序会重新导航到登录界面程序“login.aspx”,要求用户登录;第二,此程序把整个浏览器窗口分成左右两部分。左边框架调用程序“left.aspx”,并把该部分用对象名“contents”定义。右边框架调用程序“sendmail.aspx”,并把该部分用对象名“main”定义。这两个对象名,在本窗口的其它程序中可使用它们指定在哪一个框架打开相应的Web应用程序,这在left.aspx中会体现。下面来对left.aspx程序进行说明。其程序的源代码如下:代码清单left.aspx 这是邮箱,7.2.1伪邮件发送界面说明,未读邮件 收件箱 发邮件 垃圾箱,7.2.1伪邮件发送界面说明,该程序在客户端浏览器中的显示结果如图7-1左边框架所示。该程序中定义了几个超级链接导航按钮,每个导航按钮都打开不同的Web应用程序,但是并不是新打开一个浏览器窗口打开来显示相应的Web应用程序,而是在图7-1的右边框架中显示。这是因为在该程序的每个导航按钮的定义中都使用了如下的属性设置:target=main这里“target”属性被设置为一个对象名“main”,这个对象名正是在w7-1.aspx应用程序中,用于定义浏览器窗口右边的框架对象名。如果把“target”值设为在w7-1.aspx定义的左边框架的对象名“contents”,则打开的应用程序就会在左边的框架中显示,伪邮件的发送程序,邮件的发送是把用户在图7-1中所填写的用户数据(包括收件人、主题、邮件内容、附件)和一些隐含的信息(包括发件人、发送时间、新邮件标 志及附件标志)写入到数据库(本例中数据库在SQL Server中的名字是DBEmail)的数据表中(本例中的数据表是邮件数据表,名字是email),相当于在数据表中添加一条记录。当记录添加完毕之后,浏览器窗口被重新导航,打开一个邮件发送成功的页面。这个导航语句如下所示:Response.Redirect(sendmail_success.aspx?receive=&receive.text)在该语句中,Response.Redirect表示导航的含义,即打开一个新的Web页,这个Web页的名字是sendmail_success.aspx,同时还带有一个参数receive,这个参数的内容是receive.text的值,而receive是图7-1中收件人文本框的对象名,也就是说这个参数的值是收件人的邮件地址。这样在这个发送成功Web页中,会有一个提示页面,说明该邮件已经发送到某某用户的邮箱。,伪邮件的发送程序,代码清单sendmail.aspx,伪邮件的发送程序,Sub sendmail(ByVal sender As System.Object,ByVal e As System.EventArgs)连接数据库,并添加一条记录Dim con As New SqlConnection(Data Source=.;PWD=)Dim cmd As SqlCommandDim qry As Stringcon.Open(),伪邮件的发送程序,qry=“INSERT INTO email(s_email,d_email,subject,content,email_flag,sendtime,att_flag)&_Values(&session(username)&_,&receive.Text&_,&subject.Text&_,&content.Text&_,&1&_,&Now()&_,&0&)cmd=New SqlClient.SqlCommand(qry,con)cmd.ExecuteNonQuery()con.Close()邮件发送成功,导航到发送成功Web程序:sendmail_success.aspxResponse.Redirect(sendmail_success.aspx?receive=&receive.text)End Sub,伪邮件的发送程序,Sub clear_all(ByVal sender As System.Object,ByVal e As System.EventArgs)receive.Text=subject.Text=content.Text=end sub 写邮件,伪邮件的发送程序,收件人(To):主件:,伪邮件的发送程序,邮件正文(Email Body):,伪邮件的发送程序,图7-2用户填写邮件内容,伪邮件的发送程序,例如用户填写好相应的邮件内容(如图7-2所示),并且邮件发送成功之后,页面被导航到邮件发送成功页面(程序名:sendmail_success.aspx),在客户浏览器运行显示的结果如图7-3所示。其程序源代码如下所示:代码清单sendmail_success.aspx邮件发送成功,伪邮件的发送程序,邮件发送成功!邮件发送给:,伪邮件的发送程序,抄送给:无密送给:无,伪邮件的发送程序,邮件发送成功!,伪邮件的发送程序,图7.3邮件发送成功界面,伪邮件的发送程序,在邮件数据表(email)中的存储情况如图7-4所示。,图7-4 邮件发送成功后邮件数据表中的存储情况,7.3.1 DataGrid控件简介,DataGrid Web服务器控件以表格式布局显示数据。默认情况下,DataGrid以只读模式显示数据,但是DataGrid也能够在运行时可修改或删除数据库中的数据。另外,DataGrid还支持分页。DataGrid Web 服务器控件必须通过其DataSource属性绑定到数据源,否则它将无法在页面上显示数据。DataGrid的典型数据源为DataSet和OleDbDataReader。当数据绑定时,可以为DataGrid控件整体指定一个数据源。网格为数据源中的每一行显示一行,即一项。默认情况下,DataGrid控件为数据源中的每个字段生成一个绑定列。也可以选取数据源中的部分字段生成网格中的列。当Web程序运行时,程序内部的代码必须调用控件的DataBind方法以加载带有数据的网格。如果数据更改(例如,在一个事件处理程序中),则需要再次调用该方法以刷新网格。作为数据绑定的一部分,可以指定DataKeyField属性。此属性允许指定唯一标识网格中的每项信息。该信息不必是网格中显示的信息的一部分。它可以由数据源中的字段名组成(如主键)。和其他服务器控件一样,DataGrid控件中的数据绑定是单向的,也就是说,数据绑定是只读的。如果要使用网格允许用户编辑数据,则必须创建自己的代码来更新该数据源。在更新数据源之后,再次将数据绑定到该数据源。更新逻辑经常利用 DataKeyField 定位使用该键值的正确记录。其使用语法为:,7.3.1 DataGrid控件简介,AllowPaging=True|FalseAllowSorting=True|FalseAutoGenerateColumns=True|FalseBackImageUrl=urlCellPadding=像素CellSpacing=像素DataKeyField=主键字段,7.3.1 DataGrid控件简介,GridLines=None|Horizontal|Vertical|BothHorizontalAlign=Center|Justify|Left|NotSet|RightPagedDataSourcePageSize=ItemCountShowFooter=True|FalseShowHeader=True|FalseVirtualItemCount=ItemCountAlternatingItemStyle-Property=valueEditItemStyle-Property=valueFooterStyle-Property=valueHeaderStyle-Property=value,7.3.1 DataGrid控件简介,ItemStyle-Property=valuePagerStyle-Property=valueSelectedItemStyle-Property=valueOnCancelCommand=事件程序OnDeleteCommand=事件程序OnEditCommand=事件程序OnItemCommand=事件程序OnItemCreated=事件程序OnPageIndexChanged=事件程序OnSortCommand=事件程序OnUpdateCommand=事件程序/或其它属性设定.,7.3.1 DataGrid控件简介,样版设定.DataGrid控件常用的属性如表7-301所示。DataGrid控件所能控制的事件如表7-302所示。表7-301 DataGrid控件常用的属性,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,利用以上以上介绍的控制DataGrid控件的属性,来看一个示例,考察一下DataGrid控件如何显示数据库中某一个表的数据。其源代码如下所示:代码清单w7-301.aspx Sub Page_Load(sender as Object,e as EventArgs)BindData()End Sub Sub BindData(),7.3.1 DataGrid控件简介,1.建立连接 Dim myConnection as New SqlConnection(Data Source=.;Initial Catalog=Dbemail _;UID=sa;PWD=)2.建立Command对象 Const strSQL as String=select*from email where id17 order by idDim myCommand as New SqlCommand(strSQL,myConnection)3.建立DataAdapter Dim myDA as New SqlDataAdapter()myDA.SelectCommand=myCommand,7.3.1 DataGrid控件简介,4.组件DataSet Dim myDS as New DataSet()myDA.Fill(myDS)5.捆绑数据 dgPopularFAQs.DataSource=myDS dgPopularFAQs.DataBind()End Sub,7.3.1 DataGrid控件简介,在数据库中选择一些数据用DataGrid控件显示 asp:datagrid id=dgPopularFAQs runat=server BorderWidth=0 CellPadding=2 Width=100%Font-Name=Verdana Font-Size=Smaller HeaderStyle-HorizontalAlign=Center HeaderStyle-Font-Bold=True,7.3.1 DataGrid控件简介,HeaderStyle-BackColor=Navy HeaderStyle-ForeColor=White AlternatingItemStyle-BackColor=#dddddd 该示例在客户浏览器运行显示的结果如图7-301所示,7.3.1 DataGrid控件简介,7.3.1 DataGrid控件简介,在本例中,为了使页能够访问执行 SQL 数据访问所需的类,必须将System.Data和System.Data.SqlClient命名空间导入到页中。需要注意的是,上面代码中ConnectionString必须是合法的SQL数据库连接语句。比如,像以下格式的数据库连接(使用OleDb有一些细微的变化):server=IP地址;UID=用户名;pwd=密码;Initial Catalog=数据库名以上数据库连接、数据显示通过以下五步实现:1、连接到数据库;2、通过适当的SQL查询语句建立Command对象;3、建立DataAdp;4、通过请求得到的数据组建DataSet;5、捆绑DataSet到DataGrid;,7.3.2 DataGrid控件实现数据库记录的分页显示,通常,Web应用程序中一种常见的情况是显示列表,例如搜索结果的列表或目录中产品的列表。如果搜索结果有5000条记录,那么仅在一页上显示肯定是不好的,这时就需要把这些搜索结果用分页的形式显示,同时为用户提供一种在这些页之间定位的方式。在ASP.NET没有发布之前,要实现记录的分页显示是一件很烦琐的事情,常常需要花费开发者许多的精力。现在,利用DataGrid控件就可以很轻松地完成这一工作,只需要为DataGrid控件设置几个属性就可以实现分页功能。DataGrid控件支持三种类型的分页:带有默认导航按钮的默认分页、带有自定义导航控件的默认分页、自定义分页。在表7-303中给出了这几种分页方式的说明。,7.3.2 DataGrid控件实现数据库记录的分页显示,7.3.2 DataGrid控件实现数据库记录的分页显示,1.数据分页的实现 使用DataGrid要实现数据分页,只需要以下简单的几步就可以了:1)设置DataGrid控件的AllowPaging为True,其实就是设置DataGrid为允许分页显示;2)编写OnPageIndexChanged事件来处理分页请求;这样就可以了,针对刚才的举例,对以上代码中的DataGrid设置相应的属性和相关事件就可以实现数据分页了:,7.3.2 DataGrid控件实现数据库记录的分页显示,asp:datagrid id=dgPopularFAQs runat=server BorderWidth=0 CellPadding=2 Width=100%Font-Name=Verdana Font-Size=Smaller AutoGenerateColumns=False HeaderStyle-HorizontalAlign=Center HeaderStyle-Font-Bold=True,7.3.2 DataGrid控件实现数据库记录的分页显示,HeaderStyle-BackColor=Navy HeaderStyle-ForeColor=White AlternatingItemStyle-BackColor=#dddddd AllowPaging=True PageSize=5 OnPageIndexChanged=dgPopularFAQs_Paged 在以上代码中,还有一个属性需要注意,那就是PageSize。这个属性设置分页以后每页显示数据的条数,在这里,每页显示5条,如果不定义此属性,控件默认显示10条数据信息。现在,需要做的只需定义数据分页事件,当用户点击新的页面编号时,将当前的页面编号CurrentPageIndex改为新的页面编号。以下是页面改变事件代码:,7.3.2 DataGrid控件实现数据库记录的分页显示,Sub dgPopularFAQs_Paged(sender as Object,e as DataGridPageChangedEventArgs)dgPopularFAQs.CurrentPageIndex=e.NewPageIndex BindData()End Sub 需要注意的是,当页面改变以后,我们需要重新绑定数据。相类似的情形,在第一次登载页面的时候,我们需要绑定数据,而以后再次刷新就不要再绑定了:,7.3.2 DataGrid控件实现数据库记录的分页显示,Sub Page_Load(sender as Object,e as EventArgs)If Not Page.IsPostBack then BindData()End If End Sub 其完整的源代码如下:代码清单w7-302.aspx,7.3.2 DataGrid控件实现数据库记录的分页显示,Sub Page_Load(sender as Object,e as EventArgs)If Not Page.IsPostBack then BindData()EndIf End Sub Sub BindData()1.建立连接 Dim myConnection as New SqlConnection(Data Source=.;_Initial Catalog=DBemail;UID=sa;PWD=),7.3.2 DataGrid控件实现数据库记录的分页显示,2.建立Command对象 Const strSQL as String=select*from email order by idDim myCommand as New SqlCommand(strSQL,myConnection)3.建立DataAdapter Dim myDA as New SqlDataAdapter()myDA.SelectCommand=myCommand 4.组件DataSet Dim myDS as New DataSet()myDA.Fill(myDS),5.捆绑数据 dgPopularFAQs.DataSource=myDS dgPopularFAQs.DataBind()End Sub Sub dgPopularFAQs_Paged(sender as Object,e as DataGridPageChangedEventArgs)dgPopularFAQs.CurrentPageIndex=e.NewPageIndex BindData()End Sub 数据库中数据用DataGrid控件分页显示,asp:datagrid id=dgPopularFAQs runat=server BorderWidth=0 CellPadding=2 Width=100%Font-Name=Verdana Font-Size=Smaller HeaderStyle-HorizontalAlign=Center HeaderStyle-Font-Bold=True HeaderStyle-BackColor=Navy HeaderStyle-ForeColor=White AllowPaging=True PageSize=5,7.3.2 DataGrid,AlternatingItemStyle-BackColor=#ddddddOnPageIndexChanged=dgPopularFAQs_Paged 该示例在客户浏览器运行显示的结果如图7-302所示,DataGrid,7.3.2 DataGrid,2.数据分页样式设定在DataGrid控件分页显示中,还可以用一些文字或数字来代替图7-302中“”“”的上一页和下一页的按钮。这种增强效果,可通过PagerStyle定义,代码以下:Mode NextPageText=下一页 PrevPageText=上一页 Position=PagePosition,7.3.2 DataGrid,以上代码中,Mode(页面模式)可以设置为:NextPrev 或者NumericPages,其中,NextPrev页面模式用“下一页”和“上一页”按钮显示页导航控件;NumericPages页面模式显示表示各个页号的数值按钮。另外,Position(页码位置)可以设置为Top、Bottom或者TopAndBottom,如果。Position设置为Top,则页面导航按钮显示在DataGrid控件的上方;设置为Bottom,则页面导航按钮显示在DataGrid控件的下方;设置为TopAndBottom,则页面导航按钮在DataGrid控件的上方和下方都有显示。下面分别用这两种不同的页面模式来显示分页的效果,以看这两种方式的差异。1)NextPrev页面模式在例W7-302.aspx中加上如下的页面设置格式,具体添加的位置是在Datagrid控件之间。其在客户浏览器运行显示的结果如图7-303所示。asp:datagrid id=dgPopularFAQs runat=server,7.3.2 DataGrid,BorderWidth=0 CellPadding=2Width=100%Font-Name=Verdana Font-Size=Smaller HeaderStyle-HorizontalAlign=Center HeaderStyle-Font-Bold=True HeaderStyle-BackColor=Navy HeaderStyle-ForeColor=White AllowPaging=True PageSize=5,7.3.2 DataGrid,AlternatingItemStyle-BackColor=#ddddddOnPageIndexChanged=dgPopularFAQs_Paged 下一页 PrevPageText=上一页 Position=TopAndBottomHorizontalAlign=Right,图7-303 DataGrid控件页面显示模式设定(1),7.3.2 DataGrid,7.3.2 DataGrid,2)NumericPages页面模式当DataGrid控件的分页页面显示模式设置为NumericPages时,则页导航按钮是用一个个的数字来作为页面的导航的。默认情况,如果所筛选的记录超过10页以上时,在这种模式中,仅显示10个页面导航按钮。在例W7-302.aspx中加上如下的页面设置格式,具体添加的位置是在Datagrid控件之间。其在客户浏览器运行显示的结果如图7-304所示。,7.3.2 DataGrid,图7-304 DataGrid控件页面显示模式设定(2),7.3.2 DataGrid,3)页面导航标志显示风格的属性说明在DataGrid控件控制页面导航的属性中,PagerStyle属性用于控制页面导航标志的属性。该属性除了可以利用Style对象的属性之外,还可以利用一些特殊的属性控制页面导航标志的显示风格,如表7-304所示。表7-304 页面导航标志显示风格的属性,7.3.2 DataGrid,7.3.2 DataGrid,3.分页显示的深入探讨 以上实现分页很简单,但是,其中有一个很重要的问题需要探讨。在ASP.NET的框架中,当用户每一次点击新的页面导航按钮时,整个DataSet都要重新构建,如果这个DataSet数据量不是很多当然没有任何问题,但是如果有一个1000条数据或一万条数据的DataSet,每一次请求更改页面都要重新构建,那么,这种途径实现分页就不是很理想了。主要的原因是以上的方法是把所有符合条件的数据全部装载到内存了,这显然不是一种好的方法。所以,必须寻求别的方法解决,最好,每一次改变页面的时候,只是将需要显示的那些页面数据装载到内存,而不是所有页面的数据。由此可看出,前面提到的分页方法,其实只适合数据量比较小的情况。当数据量大的时候,采用以上方法将消耗大量资源。这时候,就不能再使用以上途径来实现分页了,可以使用DataGrid的AllowCustomPaging来实现。DataGrid的AllowCustomPaging属性可以实现以上功能。首先,将DataGrid的AllPaging和AllowCustomPaging属性都设置为True,然后,设置PageIndexChanged事件。在PageIndexChanged事件中,首先要将CurrentPageIndex属性设置为需要显示的页码;然后,构建一个只有一个页面数据的DataSource,然后绑定数据到DataGrid。,7.3.2 DataGrid,当AllowCustomPaging为False的时候,DataGrid假设所有DataSource的数据都要求显示;DataGrid根据CurrentPageIndex和PageSize来决定显示那些数据,其实,这只是选择所有数据中的一部分显示,没显示的数据还在内存中,而且,每一次更换页面,DataGrid都将重新计算需要显示的页面数据。当AllowCustomPaging设置为True的时候,DataGrid根据VirtualItemCount和PageSize属性来决定那些数据需要显示,每次更换页面只装载需要显示的那部分数据。下面给出一个示例来说明,其源代码如下:,7.3.2 DataGrid,代码清单w7-303.aspx Dim start_index As Integer Function CreateDataSource()As ICollection Dim dt As New DataTable()Dim dr As DataRow dt.Columns.Add(New DataColumn(IntegerValue,GetType(Int32)dt.Columns.Add(New DataColumn(StringValue,GetType(String),7.3.2 DataGrid,dt.Columns.Add(New DataColumn(CurrencyValue,GetType(Double)Dim i As Integer For i=start_index To(start_index+ItemsGrid.PageSize)-1 dr=dt.NewRow()dr(0)=i每一行所生成的序号dr(1)=项目+i.ToString()每一行的项目名称dr(2)=1.23*(i+1)每一行的单价 dt.Rows.Add(dr)Next i,7.3.2 DataGrid,Dim dv as new DataView(dt)Return dv End function CreateDataSource Sub page_load(sender as object,e as EventArgs)If checkbox1.Checked then ItemsGrid.PagerStyle.Mode=PagerMode.NumericPages Else ItemsGrid.PagerStyle.Mode=PagerMode.NextPrev End if If not IsPostBack then,7.3.2 DataGrid,Start_index=0 ItemsGrid.VirtualItemCount=100 End if BindGrid()End sub page_load Sub grid_change(sender as object,e as DataGridPageChangedEventArgs)ItemsGrid.CurrentPageIndex=e.NewPageIndex Start_index=ItemsGrid.CurrentPageIndex*ItemsGrid.PageSize BindGrid()End sub grid_change,7.3.2 DataGrid,Sub BindGrid()ItemsGrid.DataSource=CreateDataSource()ItemsGrid.DataBind()End Sub BindGrid DataGrid控件通用分页程序示例 asp:DataGrid id=ItemsGrid runat=server BorderColor=black BorderWidth=1,7.3.2 DataGrid,CellPadding=3 AllowPaging=true AllowCustomPaging=true pagesize=5AutoGenerateColumns=false OnPageIndexChanged=grid_change,7.3.2 DataGrid,asp:BoundColumn,7.3.2 DataGrid,HeaderText=单价 DataField=CurrencyValue DataFormatString=0:c,7.3.2 DataGrid,当前页是:总页数是:该Web程序在客户端浏览器中显示的结果如图7-305所示。当用户选中了“页面导航按钮显示方式切换”按钮后,在浏览器显示的结果如图7-306所示。,7.3.2 DataGrid,图7-305 DataGrid控件分页显示(1)图7-306 DataGrid控件分页显示(2),7.3.3 DataGrid记录排序,7.3.3 DataGrid控件对记录排序DataGrid服务器控件提供一种向网格中添加排序功能的途径,可以使用下列这些方法排序:默认排序:网格中的所有列都可以排序。每列的标头包含一个LinkButton控 件(超级链接),用户单击该控件可以按该列进行排序。自定义排序:定义可将哪些列排序以及用户单击该列标头中什么类型的按钮进行排序。DataGrid控件并不具备自动排序功能,而是通过引发事件将排序请求通知给用户,用户在这个事件响应的代码中执行排序,方法通常是进行排序然后重新绑定到该数据源。要使DataGrid控件具有排序功能,必须对DataGrid控件的一个属性和一个方法进行设置。下面把排序所需要的属性和方法说明如下:,7.3.3 DataGrid记录排序,AllowSorting属性:获取或设置指示DataGrid控件是否启用排序。该属性的取值是布尔类型,默认值是“False”。当该属性值取值为“True”时,表明允许 DataGrid控件进行排序,此时,DataGrid控件显示标题的部分被页面解释成一个LinkButton 控件。当用户单击了 LinkButton 控件之一时,将引发 SortCommand事件,由该事件负责提供排序处理程序的代码。事件处理程序的典型逻辑是首先对列表排序,然后将数据重新绑定到 DataGrid 控件。OnSortCommand方法:对列进行排序时发生。事件处理程序接收一个 DataGridSortCommandEventArgs类型的参数,它包含与此事件相关的数据,其中有一个SortField属性,用来通知事件处理程序,DataGrid控件的哪一个标题名被用户单击了,可根据返回的SortField属性值进行相应的排序。下面通过一个示例来看一下,DataGrid控件是如何完成排序功能的。其源代码如下:,7.3.3 DataGrid记录排序,代码清单w7-305.aspx Dim SortExpression As String Function CreateDataSource()As dataviewDim dt As New DataTable()Dim dr As DataRowDim Rand_Num As New Random(),7.3.3 DataGrid记录排序,Dim myConnection as new SqlConnection(data source=.;_Initial catalog=DBemail;UID=sa;PWD=)Const strSQL as string=select*from email order by idDim myCommand as new SqlCommand(strSQL,myConnection)Dim myDA as new SqlDataAdapter()myDA.SelectCommand=myCommand Dim myDS as new dataset()myDA.Fill(myDS,kkk)Dim dv as DataViewdv=new dataview(myDS.Tables(kkk)dv.Sort=SortExpression Return dvEnd function,7.3.3 DataGrid记录排序,Sub Page_Load(sender As Object

    注意事项

    本文(数据的显示与处理.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开