现在我是放Session里,
分页的时候从Session取出显示,
最后在page_Disposed的事件里清除。请教有没有更好的方法。
分页的时候从Session取出显示,
最后在page_Disposed的事件里清除。请教有没有更好的方法。
解决方案 »
- 关于WEB用户上传资料2台服务器文件同步的问题!
- Freetestbox 4的控件求解
- ASP.NET 中,Profile和一般的数据库操作 有什么区别,例如petshop4.0
- SQLserver 2000导出Excel问题?????
- iis 有单独的安装包吗?
- vs2005中控件的随意拖放
- 关于dropdownlist数据绑定的问题
- CheckBox服务器控件只能有/True和False这样传值吗?
- 问大家一个问题,关于ASP.NET平台(C#)下,全局变量的使用
- treeview的问题,给分!!!!!!!!!!!!!!!!1
- LinkButton控制panel显示
- 300分求~~~有谁知道怎么监试数据库里的数据变动,一旦表中数据发生变化网页上就执行某个方法急~~~
我现在是自己做分页,只提取需要的该页数据,数据量大的时候不会太占资源
我尝试过,对于一个不大的table (<1000行)
最后生成的page有两兆。
/*
数据库分页存储过程
参数说明:
tablename为搜索表名
tablefield为表的字段,约定为表的主键,
where为搜索表名,要显示所有记录请设为"1=1"
orderby为搜索结果排序,如order by id desc
curpage当前页码
page_record每页记录条数
结果:
返回表tablename中满足条件where的第curpage页的page_record条记录,结果按orderby排序
*/
CREATE PROCEDURE OGuess_CommonPaging@tablename varchar(50),
@tablefield varchar(20),
@where varchar(500),
@orderby varchar(100),
@curpage int,
@page_record intASBEGIN DECLARE @cmd varchar(500)
DECLARE @uprecord int
SET @uprecord=@curpage * @page_record
SET @cmd='SELECT TOP '+cast(@page_record as char)+' * FROM '+@tablename+' WHERE '+@where+' and '+@tablefield+' not in (SELECT TOP '+cast(@uprecord as char)+' '+@tablefield+' FROM '+@tablename+' WHERE '+@where+' '+@orderby +') '+@orderby
EXEC(@cmd)
END
GO
拉一ListBox,将值存入text或value,visible当然为false.
简单好用
{
//得到页数
if(Request.QueryString["Page"] == null)
ViewState["Page"] = "1";
else
ViewState["Page"] = Request.QueryString["Page"];//得到该页数据
DataSet ds = SqlSystemIfoLink.GetHolidayList(int.Parse(ViewState["Page"].ToString()));
rptShow.DataSource = dt.DefaultView;
rptShow.DataBind();//显示或隐藏分页按键
if(ViewState["Page"].ToString() == "1")
lbnFormerPage.Visible = false;
if(dt.Rows.Count != 10)
lbnNextPage.Visible = false;
}
//SqlSystemIfoLink.cs里调用函数
public static DataSet GetHolidayList(int Page)
{
SqlDataAdapter myDataAdapter = new SqlDataAdapter("select top 10 * from Holiday where ID not in (select top "+((Page-1)*10).ToString()+" ID from Holiday order by Holiday desc) order by Holiday desc \n select count(ID) from Holiday",myConnection);DataSet ds = new DataSet();
myDataAdapter.Fill(ds);
return ds;
}//分页按键事件
private void lbnNextPage_Click(object sender, System.EventArgs e)
{
//下一页
Response.Redirect("Holiday.aspx?Page="+(int.Parse(ViewState["Page"].ToString())+1).ToString());
}private void lbnFormerPage_Click(object sender, System.EventArgs e)
{
//上一页
Response.Redirect("Holiday.aspx?Page="+(int.Parse(ViewState["Page"].ToString())-1).ToString());
}
自己添加上一页和下一页的按键
GetHolidayList方法是放在SqlSystemIfoLink.cs作为数据连接层
ds返回的第二个表是表的总行数
每次需要ds的时候执行一遍,
然后分个页显示出来。是吗?