在C#中 如何实现Repeater分页???

 我来答
匿名用户
2013-07-01
展开全部
存储过程:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

/*
功能描述: 通用分页显示查询
如果有自增标识字段,在@strGetFields中不要加入此字段信息,
如果非要加入的话,要 (fldName + 0) AS fldName 这样处理;
输入参数:
@tblName: 表名
@strGetFields: 需要返回的列 '*':返回所以列信息
@PageSize: 页尺寸
@PageIndex: 页码
@doCount: 返回记录总数, 非 0 值则返回
@strOrderBy: 排序字段信息,(注意: 不要加 ORDER BY)
格式: Field1 DESC, Field2 ASC
@strWhere: 查询条件,(注意: 不要加 WHERE)
输出参数: @RecordCount: 记录总数
作 者: ningfeiyang
创建时间: 2005-01-21
更改纪录:
*/
ALTER PROCEDURE [dbo].[CommonPager]
(
@tblName varchar(1000),
@strGetFields varchar(1000) = '*',
@PageSize int = 10,
@PageIndex int = 1,
@doCount bit = 0,
@strOrderBy varchar(500) = '',
@strWhere varchar(1500) = '',
@RecordCount int output
)
AS
-- 主语句
DECLARE @strSQL varchar(5000) SET @strSQL = ''
-- 排序变量
DECLARE @strOrder varchar(400) SET @strOrder = ''

SET @RecordCount = 0
--如果@doCount传递过来的不是0,就执行总数统计
IF (@doCount != 0)
BEGIN
DECLARE @sWhere varchar(2000)

SET @sWhere = ''
IF (@strWhere != '')
SET @sWhere = ' WHERE ' + @strWhere

SET @strSQL = 'if exists (select * from dbo.sysobjects where id = object_id(''dbo.tmpTable'') and OBJECTPROPERTY(id, ''IsUserTable'') = 1) '
SET @strSQL = @strSQL + ' UPDATE dbo.tmpTable SET Total = (SELECT count(*) from (select '+@strGetFields+' FROM ' + @tblName + ' ' + @sWhere + ') a) '
SET @strSQL = @strSQL + ' ELSE select count(*) as Total INTO dbo.tmpTable from (SELECT '+@strGetFields+' FROM ' + @tblName + ' ' + @sWhere+') a'

print @strsql
EXEC (@strSQL)

SELECT @RecordCount=Total FROM dbo.tmpTable

--删除总数统计临时表
EXEC ('DROP TABLE dbo.tmpTable')
END

PRINT @RecordCount

--排序字段信息
IF (@strOrderBy != '')
SET @strOrder = ' ORDER BY ' + @strOrderBy
--如果是第一页就执行以上代码,这样会加快执行速度
IF (@PageIndex = 1)
BEGIN
IF (@strWhere != '')
SET @strSQL = 'SELECT TOP ' + str(@PageSize) + ' ' + @strGetFields + ' FROM ' + @tblName + ' WHERE ' + @strWhere + @strOrder
ELSE
SET @strSQL = 'SELECT TOP ' + str(@PageSize) + ' ' + @strGetFields + ' FROM '+ @tblName + ' '+ @strOrder
END
ELSE
BEGIN
--为搜索表建立自动编号 保存到临时表中
SET @strSQL = 'SELECT TOP ' + str(@PageIndex*@PageSize) + ' IDENTITY(int,1,1) AS IID, ' + @strGetFields + ' INTO #tmpTable FROM ' + @tblName
IF (@strWhere != '')
SET @strSQL = @strSQL + ' WHERE ' + @strWhere + @strOrder
ELSE
SET @strSQL = @strSQL + @strOrder

--以下代码赋予了@strSQL以真正执行的SQL代码
SET @strSQL = @strSQL + ' SELECT * FROM #tmpTable WHERE IID > ' + str((@PageIndex-1)*@PageSize) + ' DROP TABLE #tmpTable'
END

PRINT @strSQL

--执行分页查询
EXEC (@strSQL)
匿名用户
2013-07-01
展开全部
分页类:
if (!IsPostBack)
{
Business bs = new Business();
ddldepartment.DataSource = bs.ddlDepartment();
ddldepartment.DataTextField = "depname";
ddldepartment.DataValueField = "depname";
ddldepartment.DataBind();
ddleqkind.DataSource = bs.ddlEqkind();
ddleqkind.DataTextField = "eqkind";
ddleqkind.DataValueField = "eqkind";
ddleqkind.DataBind();
pds = new PagedDataSource();
dt = bs.EquipmentList();
pds.DataSource = dt.DefaultView;
//允许分页
pds.AllowPaging = true;
//数据源中的项数
int eqnumber = pds.DataSourceCount;
lbnum.Text = eqnumber.ToString();
//每页的项数
pds.PageSize = 5;
//总页数
int pages = pds.PageCount;
lbpage.Text = pages.ToString();
//当前页的索引
int currentpage;
if (Request.QueryString["page"] != null)
{
currentpage = Convert.ToInt32(Request.QueryString["page"].ToString());
}
else
{
currentpage = 1;
}
TextBox1.Text = currentpage.ToString();
//设置当前页索引为显示页码-1
pds.CurrentPageIndex = currentpage - 1;
//上一页,如果当前为第一页,则禁用上一页超链接按钮
if (!pds.IsFirstPage)
{
//上一页
//Request.CurrentExecutionFilePath为当前请求的虚拟路径
hlfrontpage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(currentpage - 1);
}
else
{
hlfrontpage.Enabled = false;
}
//下一页,如果当前页为最后一页,则禁用下一页超链接
if (!pds.IsLastPage)
{
//下一页
hlnextpage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(currentpage + 1);
}
else
{
hlnextpage.Enabled = false;
}
//转到首页
if (pds.CurrentPageIndex != 0)
{
hlfirstpage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(1);
}
else
{
hlfirstpage.Enabled = false;
}
//转到末页
if (pds.CurrentPageIndex != pages - 1)
{
hllastpage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(pages);
}
else
{
hllastpage.Enabled = false;
}
GridView1.DataSource = pds;
GridView1.DataBind();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式