asp.net 源码保存 用程序分页
asp.net 源码保存 用程序分页
发布时间:2016-12-29 来源:查字典编辑
摘要:源码:复制代码代码如下:namespaceAlex{publicclassPageTools{//////表名称///privatestri...

源码:

复制代码 代码如下:

namespace Alex

{

public class PageTools

{

/// <summary>

/// 表名称

/// </summary>

private string tableName;

public string TableName

{

get { return tableName; }

set { tableName = value; }

}

/// <summary>

/// 返回的列名

/// </summary>

private string returnColumns;

public string ReturnColumns

{

get { return returnColumns; }

set { returnColumns = value; }

}

/// <summary>

/// 条件

/// </summary>

private string where;

public string Where

{

get { return where; }

set { where = value; }

}

/// <summary>

/// 排序列

/// </summary>

private string orderColumnName;

public string OrderColumnName

{

get { return orderColumnName; }

set { orderColumnName = value; }

}

/// <summary>

/// 排序,true为降序

/// </summary>

private Boolean orderDesc;

public Boolean OrderDesc

{

get { return orderDesc; }

set { orderDesc = value; }

}

/// <summary>

/// 主键

/// </summary>

private string keyColumnName;

public string KeyColumnName

{

get { return keyColumnName; }

set { keyColumnName = value; }

}

/// <summary>

/// 页面大小

/// </summary>

private Int32 pageSize;

public Int32 PageSize

{

get { return pageSize; }

set { pageSize = value; }

}

/// <summary>

/// 第几页

/// </summary>

private Int32 pageIndex;

public Int32 PageIndex

{

get { return pageIndex; }

set { pageIndex = value; }

}

/// <summary>

/// SQL参数

/// </summary>

private SqlParameter[] whereParams;

public SqlParameter[] WhereParams

{

get { return whereParams; }

set { whereParams = value; }

}

/// <param name="TableName"></param>

/// <param name="ReturnColumns"></param>

/// <param name="Where">条件</param>

/// <param name="OrderColumnName">排序列</param>

/// <param name="OrderDesc">排序,true为降序</param>

/// <param name="KeyColumnName">主键</param>

/// <param name="PageSize">页面大小</param>

/// <param name="PageIndex">第几页</param>

/// <param name="WhereParams">SQL参数</param>

public PageTools(string tableName, string returnColumns, string where, string orderColumnName, Boolean orderDesc,

string keyColumnName, Int32 pageSize, Int32 pageIndex, params SqlParameter[] whereParams)

{

this.TableName = tableName;

this.ReturnColumns = returnColumns;

this.Where = where;

this.OrderColumnName = orderColumnName;

this.OrderDesc = orderDesc;

this.KeyColumnName = keyColumnName;

this.PageSize = pageSize;

this.PageIndex = pageIndex;

this.WhereParams = WhereParams;

}

public PageTools() { }

public DataTable RetrievePagerData()

{

if (pageIndex == 1)

{

return RetrieveTopData();

}

else

{

string sql = string.Format("select top {0} {1} from {2} where {3} and {6} not in ( select top {7} {6} from {2} where {3} order by {4} {5} ) order by {4} {5}", pageSize, returnColumns, tableName, where, orderColumnName, orderDesc == true ? "desc" : string.Empty, keyColumnName, pageSize * (pageIndex - 1));

return DbHelperSQL.Query(sql, CheckNull(whereParams)).Tables[0];

}

}

/// <summary>

/// 获取数据的条数

/// </summary>

/// <param name="TableName"></param>

/// <param name="Where"></param>

/// <param name="WhereParams"></param>

/// <returns></returns>

public Int32 RetrieveDataCount()

{

string sql = string.Format("select count(*) from {0} where {1}" , tableName, where);

Int32 result = (Int32)DbHelperSQL.GetSingle(sql, CheckNull(whereParams));

return result;

}

/// <summary>

/// 获取第一页

/// </summary>

/// <param name="top"></param>

/// <param name="TableName"></param>

/// <param name="ReturnColumns"></param>

/// <param name="Where"></param>

/// <param name="OrderColumnName"></param>

/// <param name="OrderDesc"></param>

/// <param name="WhereParams"></param>

/// <returns></returns>

public DataTable RetrieveTopData()

{

string sql = string.Format("select top {0} {1} from {2} where {3} order by {4} {5}", pageSize, returnColumns, tableName, where, orderColumnName, orderDesc == true ? "desc" : string.Empty);

return DbHelperSQL.Query(sql, whereParams).Tables[0];

}

/// <summary>

/// 移除空参数

/// </summary>

/// <param name="WhereParams"></param>

/// <returns></returns>

private SqlParameter[] CheckNull(SqlParameter[] paras)

{

if (paras == null)

{

return null;

}

List<SqlParameter> list = new List<SqlParameter>();

foreach (SqlParameter para in paras)

{

if (para != null) list.Add(para);

}

return list.ToArray();

}

}

}

页面后台:

复制代码 代码如下:

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

recordCount = page.RetrieveDataCount();

totalPages = (int)(Math.Ceiling((double)recordCount / (double)page.PageSize));

if (!IsPostBack)

{

BindData();

}

}

Alex.PageTools page = new Alex.PageTools("Test", "*", "1=1", "USER_Account", false, "USER_Account", 10, 1, null);

int recordCount;

public int totalPages;

private void BindData()

{

int pageIndex = SmartGridView1.PageIndex;

if(totalPages>0)

{

if(pageIndex>totalPages-1)

{

pageIndex=totalPages-1;

}

}

else

{

pageIndex=0;

}

SmartGridView1.PageIndex=pageIndex;

page.PageIndex=pageIndex+1;

SmartGridView1.DataSource = page.RetrievePagerData();

SmartGridView1.DataBind();

if (this.SmartGridView1.PageIndex == 0)

{

this.btnFirst.Enabled = false;

this.btnPrev.Enabled = false;

if (totalPages == 1)

{

this.btnLast.Enabled = false;

this.btnNext.Enabled = false;

}

}

else if (this.SmartGridView1.PageIndex == totalPages - 1)

{

this.btnLast.Enabled = false;

this.btnNext.Enabled = false;

}

this.lblpagesum.Text = totalPages.ToString();

this.lblpage.Text = (pageIndex + 1).ToString();

this.lblrowscount.Text = recordCount.ToString();

}

public void NavigateToPage(object sender, CommandEventArgs e)

{

btnFirst.Enabled = true;

btnPrev.Enabled = true;

btnNext.Enabled = true;

btnLast.Enabled = true;

string pageinfo = e.CommandArgument.ToString();

switch (pageinfo)

{

case "Prev":

if (this.SmartGridView1.PageIndex > 0)

{

this.SmartGridView1.PageIndex -= 1;

}

break;

case "Next":

if (this.SmartGridView1.PageIndex < (totalPages - 1))

{

this.SmartGridView1.PageIndex += 1;

}

break;

case "First":

this.SmartGridView1.PageIndex = 0;

break;

case "Last":

this.SmartGridView1.PageIndex = totalPages - 1;

break;

}

if (this.SmartGridView1.PageIndex == 0)

{

btnFirst.Enabled = false;

btnPrev.Enabled = false;

if (totalPages == 1)

{

btnLast.Enabled = false;

btnNext.Enabled = false;

}

}

else if (this.SmartGridView1.PageIndex == totalPages - 1)

{

btnLast.Enabled = false;

btnNext.Enabled = false;

}

BindData();

}

protected void gobtnClick(object sender, EventArgs e)

{

int goPageIndex = Convert.ToInt32(this.goCount.Text.Trim());

if (goPageIndex > 0)

{

if (goPageIndex >= totalPages)

{

this.SmartGridView1.PageIndex = totalPages - 1;

}

else

{

this.SmartGridView1.PageIndex = goPageIndex - 1;

}

}

else if(goPageIndex <=0)

{

this.SmartGridView1.PageIndex = 0;

}

if (this.SmartGridView1.PageIndex == 0)

{

btnFirst.Enabled = false;

btnPrev.Enabled = false;

btnLast.Enabled = true;

btnNext.Enabled = true;

if (totalPages == 1)

{

btnLast.Enabled = false;

btnNext.Enabled = false;

}

}

else if (this.SmartGridView1.PageIndex == totalPages - 1)

{

btnLast.Enabled = false;

btnNext.Enabled = false;

btnFirst.Enabled = true;

btnPrev.Enabled = true;

}

else

{

btnLast.Enabled = true;

btnFirst.Enabled = true;

btnNext.Enabled = true;

btnPrev.Enabled = true;

}

BindData();

}

页面前台:

代码

复制代码 代码如下:

<%@ Page Language="C#" Theme="msn_blue" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="SmartGridView" Namespace="BOSSWWebUI.SmartGridView" TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<script type="text/javascript">

function validate() {

var gocount=document.getElementById("goCount").value;

if(gocount=="")

{

alert("请先填写你要导航的页面");

return false;

}

var result;

if(isNaN(gocount))

{

alert("请输入合法的数字");

document.getElementById("goCount").value="";

return false;

}

if(parseInt(gocount)<=0|| parseInt(gocount)><%=this.totalPages %>)

{

alert("数字溢出");

document.getElementById("goCount").value="";

return false;

}

return true;

}

</script>

<form id="form1" runat="server">

<div>

<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">

<tr id="TrGrid" runat="server">

<td align="left">

○ 页次:<asp:Label ID="lblpage" runat="server" ></asp:Label>/

<asp:Label ID="lblpagesum" runat="server"></asp:Label>,共:<asp:Label

ID="lblrowscount" runat="server"></asp:Label>条</td>

<td align="right">

<asp:LinkButton ID="btnFirst" runat="server" OnCommand="NavigateToPage"

CommandArgument="First" CommandName="Pager" Text="首 页">[首 页]</asp:LinkButton><asp:LinkButton

ID="btnPrev" runat="server" CommandArgument="Prev" OnCommand="NavigateToPage"

CommandName="Pager" Text="上一页">[上一页]</asp:LinkButton><asp:LinkButton ID="btnNext"

runat="server" CommandArgument="Next" OnCommand="NavigateToPage"

CommandName="Pager" Text="下一页">[下一页]</asp:LinkButton><asp:LinkButton ID="btnLast"

runat="server" CommandArgument="Last" OnCommand="NavigateToPage"

CommandName="Pager" Text="尾 页" >[尾 页]</asp:LinkButton>

<asp:TextBox ID=goCount runat="server" Width="50px"></asp:TextBox>

<asp:Button ID="gobtn" runat="server" Text="go" OnClientClick="return validate();" /></td>

</tr>

</table>

<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">

<tr>

<td>

<uc1:SmartGridView ID="SmartGridView1" SkinID="blue" runat="server"

PagingStyle="Default"

CssClassMouseOver="grid_over" EnableViewState="False"

AutoGenerateColumns="False"

Width="100%" currentLanguage="">

<Columns>

<asp:TemplateField>

<headertemplate>

<asp:checkbox id="HeadCheckBox" runat="server" />

</headertemplate>

<itemtemplate>

<asp:checkbox id="checkitem" runat="server" __designer:wfdid="w1"></asp:checkbox>

</itemtemplate>

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" width="5px" cssclass="tdcell" />

</asp:TemplateField>

<asp:BoundField DataField="USER_Account" HeaderText="用户帐号" SortExpression="USER_Account">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_DspName" HeaderText="显示名称" SortExpression="USER_DspName">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_DspEngName" HeaderText="英文名" SortExpression="USER_DspEngName" >

<headerstyle cssclass="tdcell" />

<itemstyle cssclass="tdcell" horizontalalign="Center" />

</asp:BoundField>

<asp:BoundField DataField="USER_HRID" HeaderText="员工号" SortExpression="USER_HRID" >

<headerstyle cssclass="tdcell" />

<itemstyle cssclass="tdcell" horizontalalign="Center" />

</asp:BoundField>

<asp:BoundField DataField="USER_Email" HeaderText="邮件地址" SortExpression="USER_Email">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_Title" HeaderText="职 称" SortExpression="USER_Title">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_Tel" HeaderText="电 话" SortExpression="USER_Tel">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_Active" HeaderText="是否有效" SortExpression="USER_Active">

<headerstyle cssclass="tdcell" />

<itemstyle horizontalalign="Center" cssclass="tdcell" />

</asp:BoundField>

<asp:BoundField DataField="USER_Major" HeaderText="专业" SortExpression="USER_Major" >

<headerstyle cssclass="tdcell" horizontalalign="Center" />

<itemstyle cssclass="tdcell" horizontalalign="Center" />

</asp:BoundField>

</Columns>

<HeaderStyle CssClass="thHead" />

<FixRowCol TableHeight="" TableWidth="" />

<RowStyle CssClass="tdcell" />

</uc1:SmartGridView>

</td></tr>

</table>

</div>

</form>

</body>

</html>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类