由于DataList不支持内建的分页机制,因此,我们必须使用 SqlDataAdapter对象的Fill方法来实现分页,Fill方法主要用来增加或刷新DataSet的记录行。Fill方法已经被重载,我们这里选用四个参数的那个重载方法:DataSet, startRecord, maxRecords 和 TableName。
<!--StartFragment--><%@ Import NameSpace="System.Data.OleDb" %>
<%@ Import NameSpace="System.Data" %>
<HTML>
<HEAD>
<script language="vb" runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Not Page.IsPostBack() Then
intPageSize.Text = "2"
intCurrIndex.Text = "0"
DataBind()
End If
End Sub
Private Sub DataBind()
Dim CnString As String
CnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
CnString = CnString + Server.MapPath("dataDB.mdb"))
Dim objConn As New OleDbConnection(CnString)
Dim objDA As New OleDbDataAdapter("SELECT * FROM Document ORDER BY CreateDate DESC", objConn)
Dim objDS As New DataSet()
If Not Page.IsPostBack() Then
objDA.Fill(objDS)
intRecordCount.Text = CStr(objDS.Tables(0).Rows.Count) //得到总的记录数
objDS = Nothing //释放dataset
objDS = New DataSet() //重新new一个dateset
End If
objDA.Fill (objDS, CInt(intCurrIndex.Text), CInt(intPageSize.Text), "Document")//填充dataset,注意里面的参数
dList.DataSource = objDS.Tables(0).DefaultView //**************绑定数据源
dList.DataBind()
objConn.Close()
PrintStatus()
End Sub
Public Sub ShowFirst(ByVal s As Object, ByVal e As EventArgs)
intCurrIndex.Text = "0"
DataBind()
End Sub
Public Sub ShowPrevious(ByVal s As Object, ByVal e As EventArgs)
intCurrIndex.Text = Cstr(Cint(intCurrIndex.Text) - CInt(intPageSize.Text))
If CInt(intCurrIndex.Text) < 0 Then
intCurrIndex.Text = "0"
End If
DataBind()
End Sub
Public Sub ShowNext(ByVal s As Object, ByVal e As EventArgs)
If CInt(intCurrIndex.Text) + 1 < CInt(intRecordCount.Text) Then
intCurrIndex.Text = CStr(CInt(intCurrIndex.Text) + CInt(intPageSize.Text))
End If
DataBind() //*************重绑数据
End Sub
Public Sub ShowLast(ByVal s As Object, ByVal e As EventArgs)
Dim tmpInt as Integer
tmpInt = CInt(intRecordCount.Text) Mod CInt(intPageSize.Text)
If tmpInt > 0 Then
intCurrIndex.Text = Cstr(CInt(intRecordCount.Text) - tmpInt)
Else
intCurrIndex.Text = Cstr(CInt(intRecordCount.Text) - CInt(intPageSize.Text))
End If
DataBind()
End Sub
Private Sub PrintStatus()
lblStatus.Text = "总记录数:<b>" & intRecordCount.Text
lblStatus.Text += "</b> 当前:<b> "
lblStatus.Text += CStr(CInt(CInt(intCurrIndex.Text) / CInt(intPageSize.Text)+1))
lblStatus.Text += "</b>/<b>"
If (CInt(intRecordCount.Text) Mod CInt(intPageSize.Text)) > 0 Then
lblStatus.Text += CStr(CInt(CInt(intRecordCount.Text) / CInt(intPageSize.Text)+1))
Else
lblStatus.Text += CStr(CInt(intRecordCount.Text) / CInt(intPageSize.Text))
End If
lblStatus.Text += "</b>"
End Sub
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<TABLE height="528" cellSpacing="0" cellPadding="0" width="244" border="0"
ms_2d_layout="TRUE">
<TBODY>
<TR vAlign="top">
<TD width="244" height="528">
<form id="Form1" method="post" runat="server">
<TABLE height="227" cellSpacing="0" cellPadding="0" width="516" border="0"
ms_2d_layout="TRUE">
<TR vAlign="top">
<TD width="10" height="15"></TD>
<TD width="506"></TD>
</TR>
<TR vAlign="top">
<TD height="48"></TD>
<TD>
<h2 align="center"><font face="verdana">Paging in DataList</font></h2>
</TD>
</TR>
<TR vAlign="top">
<TD height="106"></TD>
<TD>
<a name="this"></a>
</TD>
</TR>
<TR vAlign="top">
<TD height="19"></TD>
<TD rowSpan="2">
<table width="505" align="right" height="25">
<tr>
<td width="76%" align="left">
<asp:label ID="lblStatus" Runat="server" Font-Name="verdana" Font-Size="10pt" />
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefFirst" onserverclick="ShowFirst" runat="server">
<b><<</b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefPrevious"
onserverclick="ShowPrevious" runat="server">
<b><</b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefNext" onserverclick="ShowNext" runat="server">
<b>></b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefLast" onserverclick="ShowLast" runat="server">
<b>>></b></a>
</td>
</tr>
</table>
</TD>
</TR>
<TR vAlign="top">
<TD height="19"></TD>
<TD>
<asp:label ID="intPageSize" Visible="False" Runat="server" /></TD>
</TR>
<TR vAlign="top">
<TD height="20"></TD>
<TD>
<asp:label ID="intRecordCount" Visible="False" Runat="server" /></TD>
</TR>
<asp:DataList ID="dList" Runat="server" Width="100%"
ItemStyle-BackColor="Beige" ItemStyle-Font-Name="宋体"
BorderWidth="1" HeaderStyle-Font-Name="Verdana" EnableViewState="False">
<HeaderTemplate>
<table width="100%" style="font: 10pt verdana" cellpadding="0" cellspacing="0">
<tr style="background-color:FF0000">
<th align="left">
<font color="#FFFFFF">Store ID</font></th>
<th align="left">
<font color="#FFFFFF">Order Number</font></th>
<th align="left">
<font color="#FFFFFF">Order Date</font></th>
<th align="left">
<font color="#FFFFFF">Qty</font></th>
<th align="left">
<font color="#FFFFFF">Title ID</font></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#f5f5dc">
<td><%# DataBinder.Eval(Container.DataItem, "id") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Title") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Author") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "Source") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "CreateDate") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</TABLE>
</FooterTemplate>
</asp:DataList>
<asp:label ID="intCurrIndex" Visible="False" Runat="server" />
</TABLE>
</FORM>
</TD></TR>
</TBODY>
</TABLE>
</body>
</HTML>
分享到:
相关推荐
VB.NET 开发程序【学校信息系统源码.zip】.zip VB.NET 开发程序【学校信息系统源码.zip】.zip 陈表达SQL server开发程序案例:VB.NET 开发程序【学校信息系统exe.zip】 本程序应用技术:1、SQL自定义函数,减少每次...
VB.net中DataSet和JSON形式的数据相互转换的代码,可以拿来直接说用
Winform(VB.NET)省市区三级Combobox联动示例代码 利用 DataSet 的 DataRelation BindingSource,实现三级联动。 缺点:数据全查进来。有点儿浪费。 改进:可以在BindingSource Change时触发事件查询并缓存
VB.NET 包含access数据库 If txtName.Text = "" Then MsgBox("请输入用户名") txtName.Focus() txtPassword.Text = "" Exit Sub End If If txtPassword.Text = "" Then MsgBox("请输入密码") txtPassword....
很多常用的Linq写法,基于Vb.net,本人收获良多 LinqSamples LinqToSQLSamples LinqToXMLSamples LinqToDataSetSamples 举例:Linq to sql Dim categories = From prod In db.Products _ Group By Key = New With ...
C#(VB.net)数据库访问操作类库 你知道,一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力. 对于CN 大多数公司都是开发MIS系统 说白了就是数据库系统 使用数据访问类库,必将节省大量...
OleDbDataAdapter 不会自动生成,为了使对 DataSet 所作的更改和相关联的数据源协调起来所必须的 SQL 语句。但是,如果设置了 OleDbDataAdapter 的 SelectCommand 属性,那么就可以创建 OleDbCommandBuilder 对象,来...
ADO.NET 为提高数据密集型(data-intensive)应用程序的性能、简化这类程序的建立过程提供了多种技术。数据集(DataSet )作为ADO.net 对象模型的标志,作为一个微型的、不连接(disconnected)的数据源的副本提供...
应用技术:95%使用SQL全局自定义函数返回dataset缓存表,代码简单,这个是做了部分的功能的程序,相加其他功能只需要写SQL语句即可,数据库没有用户和密码,只需要直接连接程序文件夹的【sql数据库.mdf】文件即可 ...
本课程介绍ADO.NET技术的基本概念,并结合实际开发,重点介绍DataSet对象和DataGrid控件的使用,使初学者也可以轻松完成报表、产品列表、查询结果显示、导航菜单等功能。 1.视频讲课2.教程3.源码4.Q&A
Export to Excel using VB.NET.Exporting data to Excel of Microsoft Office is currently needed. But many of them used very complicated coding for simple export either from Datagrid or DataTable. I used ...
VB.NET 通过语句 读写ACCESS数据库 不是通过向导建的连接 ADO.NET 语句 建立数据连接 更加程序化 参数化 读 包括读 dataset的表某行某列的数据
在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值...
VB.NET-桌面-应用程序生成器 用于创建 VB.NET 桌面应用程序的 VB.NET 桌面应用程序生成器 - 让您快速设置具有合理默认值和最佳实践的项目。 项目结构 概述 ├── My Project/ - Configuration of the application ...
VB.NET is insistent upon enclosing parameters of function calls within parentheses regardless of whether we are returning a value or whether we are using the Call statement. It makes the code much ...
技术特性 支持ASP.NET-ActiveReports在WebForms应用程序中通过使用ASP.NET 服务器控件来使用。这个控件支持分布式web报表,可使用HTML,ActiveX,.NET 和PDF浏览器。 完全代码集成-使用Microsoft Visual Studio...
DataSet高效分页比存储过程能活简单方便,和LINQ一样一次只读处当前页的条数数据,但比LINQ性能要高.
摘要:VB源码,数据库应用,TextBox 运行环境:Visual Studio2010
asp.net 利用webservice,dataset创建火车票查询系统 asp.net 利用webservice,dataset创建火车票查询系统
公司因业务需求,需要开发一个自动向供应商发送邮件的系统。难点是 邮件需附带一个Excel附件,此Excel附件有3个标签页(sheet),内容格式 根据供应商的不同而不同,相关部门已提供一个Excel内容模板。...