`
webcode
  • 浏览: 5930112 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

利用DataSet的Fill方法实现DataList的分页技术(vb.net)

 
阅读更多

由于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>&lt;&lt;</b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefPrevious"
onserverclick="ShowPrevious" runat="server">
<b>&lt;</b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefNext" onserverclick="ShowNext" runat="server">
<b>&gt;</b></a>
</td>
<td width="6%">
<a href="datalistpaging.aspx#this" ID="hrefLast" onserverclick="ShowLast" runat="server">
<b>&gt;&gt;</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 VB.NET 开发程序【学校信息系统源码.zip】.zip 陈表达SQL server开发程序案例:VB.NET 开发程序【学校信息系统exe.zip】 本程序应用技术:1、SQL自定义函数,减少每次...

    VB.net DataSet和JSON形式的数据相互转换

    VB.net中DataSet和JSON形式的数据相互转换的代码,可以拿来直接说用

    Winform(VB.NET)省市区三级Combobox联动示例代码

    Winform(VB.NET)省市区三级Combobox联动示例代码 利用 DataSet 的 DataRelation BindingSource,实现三级联动。 缺点:数据全查进来。有点儿浪费。 改进:可以在BindingSource Change时触发事件查询并缓存

    选课系统VB.NET

    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 - Sample Queries实例

    很多常用的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)数据库访问操作类库

    C#(VB.net)数据库访问操作类库 你知道,一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力. 对于CN 大多数公司都是开发MIS系统 说白了就是数据库系统 使用数据访问类库,必将节省大量...

    初学VB.NET使用心得随记

    OleDbDataAdapter 不会自动生成,为了使对 DataSet 所作的更改和相关联的数据源协调起来所必须的 SQL 语句。但是,如果设置了 OleDbDataAdapter 的 SelectCommand 属性,那么就可以创建 OleDbCommandBuilder 对象,来...

    VB.NET数据并发性具体处理方式

    ADO.NET 为提高数据密集型(data-intensive)应用程序的性能、简化这类程序的建立过程提供了多种技术。数据集(DataSet )作为ADO.net 对象模型的标志,作为一个微型的、不连接(disconnected)的数据源的副本提供...

    VB.NET 开发程序【学校信息系统exe.zip】

    应用技术:95%使用SQL全局自定义函数返回dataset缓存表,代码简单,这个是做了部分的功能的程序,相加其他功能只需要写SQL语句即可,数据库没有用户和密码,只需要直接连接程序文件夹的【sql数据库.mdf】文件即可 ...

    VB.NET2005教程 (8):了解和掌握ADO.NET的使用

    本课程介绍ADO.NET技术的基本概念,并结合实际开发,重点介绍DataSet对象和DataGrid控件的使用,使初学者也可以轻松完成报表、产品列表、查询结果显示、导航菜单等功能。 1.视频讲课2.教程3.源码4.Q&A

    Export Excel vs VB_copysx5_vb.net_VB_

    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数据库

    VB.NET 通过语句 读写ACCESS数据库 不是通过向导建的连接 ADO.NET 语句 建立数据连接 更加程序化 参数化 读 包括读 dataset的表某行某列的数据

    asp.net知识库

    在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值...

    VB.NET-Desktop-App-Generator:用于创建 VB.NET 桌面应用程序的 VB.NET 桌面应用程序生成器 - 让您快速设置具有合理默认值和最佳实践的项目

    VB.NET-桌面-应用程序生成器 用于创建 VB.NET 桌面应用程序的 VB.NET 桌面应用程序生成器 - 让您快速设置具有合理默认值和最佳实践的项目。 项目结构 概述 ├── My Project/ - Configuration of the application ...

    VB.NET Developer's Guide(4574).pdf

    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 ...

    ActiveReports for .NET--灵活强大的.Net 报表制作控件

    技术特性 支持ASP.NET-ActiveReports在WebForms应用程序中通过使用ASP.NET 服务器控件来使用。这个控件支持分布式web报表,可使用HTML,ActiveX,.NET 和PDF浏览器。 完全代码集成-使用Microsoft Visual Studio...

    DataSet高效分页

    DataSet高效分页比存储过程能活简单方便,和LINQ一样一次只读处当前页的条数数据,但比LINQ性能要高.

    VB.NET绑定数据到TextBox中显示的实例

    摘要:VB源码,数据库应用,TextBox 运行环境:Visual Studio2010

    asp.net 利用webservice,dataset创建火车票查询系统

    asp.net 利用webservice,dataset创建火车票查询系统 asp.net 利用webservice,dataset创建火车票查询系统

    C# DataSet创建Excel文件(多sheet,支持Excel模板)

    公司因业务需求,需要开发一个自动向供应商发送邮件的系统。难点是 邮件需附带一个Excel附件,此Excel附件有3个标签页(sheet),内容格式 根据供应商的不同而不同,相关部门已提供一个Excel内容模板。...

Global site tag (gtag.js) - Google Analytics