DataList 能否分页,请问如何实现?


Posted in 面试题 onMay 03, 2015
private void Page_Load(object sender, System.EventArgs e)
{
PageSize=1;
Conn= new SqlConnection(Application["Guest_Conn"].ToString());
Conn.Open();
if(!Page.IsPostBack)
{
ListBind();
CurrentPage = 0;
ViewState["PageIndex"] = 0;
//计算总共有多少记录
RecordCount = CalculateRecord();
lblRecordCount.Text = RecordCount.ToString();
//计算总共有多少页
PageCount = RecordCount/PageSize;
lblPageCount.Text = PageCount.ToString();
ViewState["PageCount"] = PageCount;
}
}

//计算总共有多少条记录
public int CalculateRecord()
{
int intCount;
string strCount = “select count(*) as co from guest”;
SqlCommand MyComm = new SqlCommand (strCount,Conn);
SqlDataReader dr = MyComm.ExecuteReader();
if(dr.Read())
{
intCount = Int32.Parse(dr["co"].ToString());
}
else
{
intCount = 0;
}
dr.Close();
return intCount;
}

ICollection CreateSource()
{
int StartIndex;
//设定导入的起终地址
StartIndex = CurrentPage*PageSize;
string strSel = “Select * from guest order by postdate desc”;
DataSet ds = new DataSet();
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,Conn);
MyAdapter.Fill(ds,StartIndex,PageSize,”guest”);
return ds.Tables["guest"].DefaultView;
}

public void ListBind()
{
Myguest.DataSource = CreateSource();
Myguest.DataBind();
lbnNextPage.Enabled = true;
lbnPrevPage.Enabled = true;
if(CurrentPage==(PageCount-1)) lbnNextPage.Enabled = false;
if(CurrentPage==0) lbnPrevPage.Enabled = false;
lblCurrentPage.Text = (CurrentPage+1).ToString();
}

public void Page_OnClick(Object sender,CommandEventArgs e)
{
CurrentPage = (int)ViewState["PageIndex"];
PageCount = (int)ViewState["PageCount"];
string cmd = e.CommandName;
//判断cmd,以判定翻页方向
switch(cmd)
{
case “next”:
if(CurrentPage break;
case “prev”:
if(CurrentPage>0) CurrentPage–;
break;
}
ViewState["PageIndex"] = CurrentPage;
ListBind();
}

Tags in this post...

面试题 相关文章推荐
mysql的最长数据库名,表名,字段名可以是多长
Apr 21 面试题
Java平台和其他软件平台有什么不同
Jun 05 面试题
C语言面试题
Oct 30 面试题
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
Mar 19 面试题
Oracle快照(snapshot)
Mar 13 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
如何删除一个表里面的重复行
Jul 13 面试题
.NET初级开发工程师面试题(包括Javascript)
Aug 22 面试题
linux面试题参考答案(3)
Sep 13 面试题
介绍一下EJB的分类及其各自的功能及应用
Aug 23 面试题
Weblogic和WebSphere不同特点
May 09 面试题
什么是servlet链?
Jul 13 面试题
.NET remoting中对象激活的两种方式
Jun 08 #面试题
.NET remoting的两种通道是什么
May 31 #面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 #面试题
Net Remoting把服务器端激活两种模式
Jan 22 #面试题
.net软件工程师应聘上机试题
Mar 10 #面试题
请解释在new与override的区别
Oct 29 #面试题
关于递归的一道.NET面试题
May 12 #面试题
You might like
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
php cookie用户登录的详解及实例代码
2017/01/03 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
详解Python中的文件操作
2016/08/28 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Python内置函数locals和globals对比
2020/04/28 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Python之多进程与多线程的使用
2021/02/23 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
物理系毕业生自荐信
2013/11/01 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
通信研究生自荐信
2014/02/01 职场文书
音乐教学随笔感言
2014/02/19 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
诚信高考倡议书
2019/06/24 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android