前台
<%@ 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) |
|