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

面试题 相关文章推荐
C,C++的几个面试题小集
Jul 13 面试题
一套带网友答案的.NET笔试题
Dec 06 面试题
StringBuilder和String的区别
May 18 面试题
const和static readonly区别
May 20 面试题
linux面试题参考答案(7)
Oct 29 面试题
介绍一下grep命令的使用
Jun 28 面试题
Linux如何命名文件--使用文件名时应注意
May 29 面试题
某公司面试题
Mar 05 面试题
什么是规则表达式
May 03 面试题
Python面试题集
Mar 08 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
Unix如何在一行中运行多个命令
May 29 面试题
.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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
javascript动画浅析
2012/08/30 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
详解vue-router基本使用
2017/04/18 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
深入了解Python数据类型之列表
2016/06/24 Python
速记Python布尔值
2017/11/09 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
Java语言程序设计测试题判断题部分
2013/01/06 面试题
关于学习的演讲稿
2014/05/10 职场文书
创业计划书之便利店
2019/09/05 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
R9700摩机记
2022/04/05 无线电