日期:2011-10-04  浏览次数:20418 次

本代码收集整理而成 已调试通过 ITFLY8
分页存储过程
//@PageSize:分页大小,PageIndex:页号,@PageCount:总页数

,@recordCount:记录数
drop procedure GetCustomDataPage
go
CREATE PROCEDURE GetCustomDataPage
@pageSize int,
@pageIndex int,
@pageCount int output,
@recordCount int output
AS
declare @SQL varchar(1000)
select @recordCount=count(*) from products
set @pageCount=ceiling(@recordCount*1.0/@pageSize)
if @pageIndex=0 or @pageCount<=1
set @SQL='select top '+str(@pageSize)+'

productID,productName,unitPrice from products order
 by productID asc'
else if @pageIndex=@pageCount-1
set @SQL='select * from (select top '+str(@recordCount-

@pagesize*@pageIndex)+'productID,productName,
unitPrice from products order by productID desc) TempTable

order by productID asc'
else
set @SQL='select top '+str(@pageSize)+' * from (select top

'+str(@recordCount-@pageSize*@pageIndex)+'
 productID,productName,unitPrice from products order by

productID desc) TempTable order by productID asc'
exec(@SQL)
GO
.aspx代码

<form id="Form1" method="post" runat="server">
   <FONT face="宋体">
    <asp:DataGrid

id="DataGrid1" style="Z-INDEX: 101; LEFT: 8px; POSITION:

absolute; TOP: 8px" runat="server"
    

AutoGenerateColumns="False" AllowPaging="True"

AllowCustomPaging="True">
     <Columns>
     

<asp:BoundColumn DataField="productID" ReadOnly="True"

HeaderText="productID"></asp:BoundColumn>
     

<asp:BoundColumn DataField="productName"

HeaderText="productName"></asp:BoundColumn>
     

<asp:BoundColumn DataField="unitPrice"

HeaderText="unitPrice"></asp:BoundColumn>
     

<asp:ButtonColumn Text="删除"

CommandName="Delete"></asp:ButtonColumn>
     

<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="

更新" CancelText="取消" EditText="编

辑"></asp:EditCommandColumn>
     </Columns>
     <PagerStyle

Mode="NumericPages"></PagerStyle>
    </asp:DataGrid></FONT>
  </form>

.aspx.cs代码

protected System.Web.UI.WebControls.DataGrid DataGrid1;
  private uint pageCount;  //总页数
  private uint recordCount;  //总记录数


  private void Page_Load(object sender,

System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!Page.IsPostBack)
   {
    BindDataGrid();
   }
  }


private DataSet GetPageData(uint pageSize, uint pageIndex)
  {
   string strConn =

System.Configuration.ConfigurationSettings.AppSettings

["ConnectionString"];