分享

存储过程分页

 jazzka 2010-03-08
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyProPage.aspx.cs" Inherits="MyProPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
            <tr>
                <td width="100%">
                    <asp:GridView ID="GridViewItems" runat="server" AutoGenerateColumns="False" border="0"
                        CellPadding="0" ShowFooter="True" UseAccessibleHeader="False" GridLines="None"
                        ForeColor="#333333" PageSize="1000" OnRowDataBound="GridViewItems_RowDataBound">
                        <Columns>
                            <asp:TemplateField HeaderText="选择" FooterText="选择">
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemTemplate>
                                    <input type="checkbox" name="checkme" value='<%# Eval("Id")%>' />
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="ID" FooterText="Id">
                                <ItemTemplate>
                                    <%# Eval("Id")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="名称" FooterText="名称">
                                <ItemTemplate>
                                    <%# Eval("Titles")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="分类" FooterText="分类">
                                <ItemTemplate>
                                    <%# Eval("CategoryName")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="充许评论" FooterText="充许评论">
                                <ItemTemplate>
                                    <asp:LinkButton ID="btnAllowComment" runat="server" CommandName="Comment" CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="推荐" FooterText="推荐">
                                <ItemTemplate>
                                    <asp:LinkButton ID="btnCommend" runat="server" CommandName="Commend" CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="显示" FooterText="显示">
                                <ItemTemplate>
                                    <asp:LinkButton ID="btnState" runat="server" CommandName="State" CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="访问数" FooterText="访问数">
                                <ItemTemplate>
                                    <%# Eval("Visits")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="评论数" FooterText="评论数">
                                <ItemTemplate>
                                    <%# Eval("Comments")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="顶贴数" FooterText="顶贴数">
                                <ItemTemplate>
                                    <%# Eval("Support")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="文件名" FooterText="文件名">
                                <ItemTemplate>
                                    <%# Eval("FileName")%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="操作" FooterText="操作">
                                <ItemTemplate>
                                    <a href="?action=edit&i=<%# Eval("id") %>">修改</a><asp:LinkButton ID="btnDel" runat="server"
                                        CommandName="Del" CommandArgument='<%# Eval("id") %>'> <span onclick="return confirm('确定删除该信息吗?\n\n删除后无法恢复!');">删除</span></asp:LinkButton>
                                    <asp:HiddenField ID="HiPicture" runat="server" Value='<%# Eval("Pictures")%> ' />
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        <FooterStyle BackColor="" Font-Bold="True" ForeColor="White" />
                        <RowStyle BackColor="#F6F6F6" />
                        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                        <HeaderStyle BackColor="" Font-Bold="True" ForeColor="White" />
                        <AlternatingRowStyle BackColor="White" />
                    </asp:GridView>
                </td>
            </tr>
            <tr>
                <td width="100%"><% PageView();%></td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class MyProPage : System.Web.UI.Page
{
    MyPagination pagina = null;
    int CurPage = 0;
    int PageSize = 10;
    protected void Page_Load(object sender, EventArgs e)
    {
      
        if(!IsPostBack)
        {
            GVBind();
        }
    }
    public void GVBind()
    {
        if (Request["page"] != null)
            CurPage = Convert.ToInt32(Request["page"].ToString());
        if (Request["PageSize"] != null)
            PageSize = Convert.ToInt32(Request["PageSize"].ToString());
        if (CurPage < 1) CurPage = 1;
        //--
        int num = Convert.ToInt32(SqlHelper.ExecuteScalar(CommandType.Text, "select count(*) from D_Information", new SqlParameter()).ToString());
        pagina = new MyPagination();
        pagina.Count = num;
        pagina.TableName = "D_Information";
        pagina.PageIndex = CurPage;
        pagina.PageSize = PageSize;
        DataSet ds = SqlHelper.ExecuteDataSet(System.Data.CommandType.StoredProcedure, "GetMyrecordFromPage", pagina.GetParam());
        GridViewItems.DataSource = ds.Tables[0];
        GridViewItems.DataBind();
    }
    protected void GridViewItems_RowDataBound(object sender, GridViewRowEventArgs e)
    {
      
    }
    /// <summary>
        /// 显示分页
        /// </summary>
    public void PageView()
    {
        Response.Write(pagina.ChinesePage());
    }
    //protected int _curpage = 1;
    //protected int _pagecount = 0;
    //protected int _pagesize = 10;
    //protected int _totalcount = 0;
    //// Methods
    //public string ChinesePage()
    //{
    //    string str = DelUrlPara("page");
    //    StringBuilder builder = new StringBuilder();
    //    int num = 0;
    //    int num2 = 0;
    //    if ((this._pagecount <= 10) || (this._curpage <= 3))
    //    {
    //        num = 1;
    //        num2 = (10 > this._pagecount) ? this._pagecount : 10;
    //    }
    //    else if ((this._pagecount - this._curpage) <= 7)
    //    {
    //        num = this._pagecount - 9;
    //        num2 = this._pagecount;
    //    }
    //    else
    //    {
    //        num = this._curpage - 2;
    //        num2 = this._curpage + 7;
    //    }
    //    builder.Append(string.Concat(new object[] { "<span class=\"pagenav\">共:", this._totalcount, "条 ", this._pagesize, "条/页 ", this._pagecount, "页/<font color=red>", this._curpage, "页</font> </span>" }));
    //    if (this._curpage > 1)
    //    {
    //        builder.Append(string.Concat(new object[] { "<a href=\"", str, "page=1\" title=\"首页\"><<</a> <a href=\"", str, "page=", this._curpage - 1, "\" title=\"上一页\"><</a> " }));
    //    }
    //    for (int i = num; i <= num2; i++)
    //    {
    //        builder.Append((this._curpage == i) ? ("<a class=\"curr\" href=\"javascript:void(0)\">" + i + "</a> ") : string.Concat(new object[] { "<a href=\"", str, "page=", i, "\" title=\"第", i, "页\">", i, "</a> " }));
    //    }
    //    if (this._pagecount > this._curpage)
    //    {
    //        builder.Append(string.Concat(new object[] { "<a href=\"", str, "page=", this._curpage + 1, "\" title=\"下一页\">></a> <a href=\"", str, "page=", this._pagecount, "\" title=\"末页\">>></a> " }));
    //    }
    //    return builder.ToString();
    //}
}
 
sql 
USE [News]
GO
/****** 对象:  StoredProcedure [dbo].[GetMyrecordFromPage]    脚本日期: 03/09/2010 12:18:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[GetMyrecordFromPage]
(
 @tblName varchar(255),--表名
 @fldName varchar(255),--字段
 @PageSize int = 10,--页尺寸
 @PageIndex int = 1,--页码
 @OrderType bit =0,--排序方式(0 升序  !0降序)
 @IsCount bit =0,--返回记录数  !0返回记录数
 @strWhere varchar(2000) = '' --条件语句
)
as
declare @strSQL varchar(6000)
declare @strTmp varchar(1000)
declare @strOrder varchar(500)
--判断是否返回行数
if @IsCount!=0
begin
 set @strSql='select count(['+@fldName+']) from ['+@tblName+']'
end
else
begin
 --判断排序类型
 if @OrderType!=0
 begin
  set @strOrder=' order by ['+@fldName+'] desc'
  set @strTmp='<(select min'
 end
 else
 begin
  set @strOrder=' order by ['+@fldName+'] asc'
  set @strTmp='>(select max'
 end
 --判断有无条件
 if @strWhere=''
 begin
  set @strWhere='1=1'
 end
 --判断是否第一页
 if @PageIndex =1
 begin
  set @strTmp=''
  if @strWhere!=''
  begin
   set @strTmp=' where '+@strWhere
  end
  set @strSQL='select top '+str(@PageSize)+' * from ['+@tblName+'] '+@strTmp+@strOrder
 end
 else
 begin
  set @strSQL='select top '+str(@PageSize)+' * from ['
  +@tblName+'] where ['+@fldName+']'+@strTmp+'(['
  +@fldName+']) from (select top '+str((@PageIndex-1)*@PageSize)+' ['
  +@fldName+'] from ['+@tblName+'] where '+@strWhere
  +@strOrder+') as tblTmp) and '+@strWhere+@strOrder
 end
end
print @strSQL
exec(@strSQL)

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约