qhnokia

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
前台
<%@ Page Language="C#" Theme="Classic" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PagedRepeater_Default" MasterPageFile="~/navpage.master" Title="AspNetPager示例—Repeater分页示例" %>

<asp:Content runat="server" ContentPlaceHolderID="main">
<div>该示例演示如何使用AspNetPager分页控件对Repeater控件进行分页
</div>
<div>
Order ID:
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>&gt;=</asp:ListItem>
<asp:ListItem>&lt;=</asp:ListItem>
<asp:ListItem>=</asp:ListItem>
</asp:DropDownList><asp:TextBox ID="tb_orderid" runat="server" Width="90px">11000</asp:TextBox>
<asp:Button ID="btn_search" runat="server" OnClick="btn_search_Click" Text="Search" />
<asp:Button ID="btn_all" runat="server" OnClick="btn_all_Click" Text="Show All" Enabled="false"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tb_orderid"
Display
="Dynamic" ErrorMessage="RequiredFieldValidator">必需</asp:RequiredFieldValidator>&nbsp;
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tb_orderid"
Display
="Dynamic" ErrorMessage="CompareValidator" Operator="DataTypeCheck" SetFocusOnError="True"
Type
="Integer">必须是整数</asp:CompareValidator>
</div>
<br />
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="100%"
ShowPageIndexBox
="Always" PageIndexBoxType="DropDownList"
TextBeforePageIndexBox
="Go To Page: " HorizontalAlign="right" PageSize="12"
OnPageChanged
="AspNetPager1_PageChanged" EnableTheming="true"
ShowCustomInfoSection
="Left" CssClass="anpager"
CurrentPageButtonClass
="cpb" FirstPageText="首页" LastPageText="尾页"
NextPageText
="下页" onpagechanging="AspNetPager1_PageChanging" PrevPageText="上页">
</webdiyer:AspNetPager>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%" border="1" cellspacing="0" cellpadding="4" style="border-collapse:collapse">
<tr style="backGround-color:#CCCCFF"><th style="width:15%">订单编号</th><th style="width:15%">订单日期</th><th style="width:20%">客户编号</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:#FAF3DC">
<td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#eaeaea">
<td><%#DataBinder.Eval(Container.DataItem,"orderid")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"orderdate","{0:d}")%></td>
<td><%#DataBinder.Eval(Container.DataItem,"customerid")%></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<webdiyer:AspNetPager ID="AspNetPager2" runat="server" CloneFrom="AspNetPager1">
</webdiyer:AspNetPager>
</asp:Content>

后台

 

代码
using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

public partial class PagedRepeater_Default : System.Web.UI.Page
{
const string vsKey = "searchCriteria";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState[vsKey]
= "0";
bindData(
0);
}
}

void bindData(int searchorderid)
{

int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "订单分页",
new SqlParameter("@OrderID", searchorderid),
new SqlParameter("@pagesize", AspNetPager1.PageSize),
new SqlParameter("@pageindex", AspNetPager1.CurrentPageIndex),
new SqlParameter("@docount", 1));
AspNetPager1.RecordCount
= totalOrders;

Repeater1.DataSource
= SqlHelper.ExecuteReader(CommandType.StoredProcedure, "订单分页",
new SqlParameter("@OrderID", searchorderid),
new SqlParameter("@pagesize", AspNetPager1.PageSize),
new SqlParameter("@pageindex", AspNetPager1.CurrentPageIndex),
new SqlParameter("@docount", 2));
Repeater1.DataBind();
}

protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
bindData(
int.Parse( ViewState[vsKey].ToString()));
}


protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
}
protected void btn_search_Click(object sender, EventArgs e)
{
AspNetPager1.CurrentPageIndex
= 1;
btn_all.Enabled
= true;
int i = int.Parse( tb_orderid.Text);
ViewState[vsKey]
= tb_orderid.Text;
bindData(i);
}
protected void btn_all_Click(object sender, EventArgs e)
{
ViewState[vsKey]
= "0";
btn_all.Enabled
= false;
AspNetPager1.CurrentPageIndex
= 1;
bindData(
0);
}
}

存储过程

 

代码
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



ALTER procedure [dbo].[订单分页]
(
@OrderID Int,
@pagesize int,
@pageindex int,
@docount int)
as

if(@docount=1)
select count(*) from Orders where orderid > @orderid
else
begin
with temptbl as (
SELECT ROW_NUMBER() OVER (ORDER BY OrderDate desc)AS Row, * from Orders O where orderid > @orderid)
SELECT * FROM temptbl where Row between (@pageindex-1)*@pagesize+1 and (@pageindex-1)*@pagesize+@pagesize
end


 

posted on 2010-02-04 11:31  其乐无穷  阅读(2255)  评论(0编辑  收藏  举报