aspx
<%#rptList.Items.Count == 0 ? "暂无记录" : ""%>
显示
CodeBehind
Namespace
public partial class xxx : Web.UI.ManagePage
{
protected int totalCount;//Total number of records
protected int page;//Current page
protected int pageSize;//Data size per page
protected string keywords = string.Empty;//Query conditions
protected void Page_Load(object sender, EventArgs e)
{
## this.keywords =Utils..GetQueryString("keywords");//Get query conditionsthis.pageSize = GetPageSize(10); //Set the data size of each page
if (!Page.IsPostBack) );
## }
}
private void RptBind(string _strWhere, string _orderby);# This.rptList.DataBind();lblTotalIncome.Text = Math.Round(totalIncome, 3).ToString();txtPageNum.Text = this.pageSize.ToString();
string pageU rl=Utils.CombUrlTxt("xxx.aspx", "keywords={0}&page={1}", this.keywords, "__id__");PageContent.InnerHtml =
Utils.
OutPageList(this.pageSize, this.page, this.totalCount, pageUrl, 8);
}
##private int GetPageSize(int _default_size )
int _pagesize; if (_pagesize > 0)}
protected void lbtnSearch_Click(object sender, EventArgs e)
{
Response.Redirect(Utils.CombUrlTxt("xxx.aspx", "keywords={0}", txtKeywords.Text));
}
protected void txtPageNum_TextChanged(object sender, EventArgs e)
{
int _pagesize;
if (int.TryParse(txtPageNum.Text.Trim(), out _pagesize))
{
if (_pagesize > 0)
{
Utils.WriteCookie("detail_page_size", "NovelPage", _pagesize.ToString(), 14400);
}
}
Response.Redirect(Utils.CombUrlTxt("xxx.aspx", "keywords={0}", this.keywords));
}
}
Utils
命名空间
public class Utils
{
public static string GetQueryString(string strName)
{
return GetQueryString(strName, false);
}
public static string GetQueryString(string strName, bool sqlSafeCheck)
{
if (HttpContext.Current.Request.QueryString[strName] == null)
return "";
if (sqlSafeCheck && !IsSafeSqlString(HttpContext.Current.Request.QueryString[strName]))
return "unsafe string";
return HttpContext.Current.Request.QueryString[strName];
}
public static bool IsSafeSqlString(string str)
{
return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
}
public static int GetQueryInt(string strName, int defValue)
{
return StrToInt(HttpContext.Current.Request.QueryString[strName], defValue);
}
public static int StrToInt(string expression, int defValue)
{
if (string.IsNullOrEmpty(expression) || expression.Trim().Length >= 11 || !Regex.IsMatch(expression.Trim(), @"^([-]|[0-9])[0-9]*(\.\w*)?$"))
return defValue;
int rv;
if (Int32.TryParse(expression, out rv))
return rv;
return Convert.ToInt32(StrToFloat(expression, defValue));
}
public static float StrToFloat(string expression, float defValue)
{
if ((expression == null) || (expression.Length > 10))
return defValue;
float intValue = defValue;
if (expression != null)
{
bool IsFloat = Regex.IsMatch(expression, @"^([-]|[0-9])[0-9]*(\.\w*)?$");
if (IsFloat)
float.TryParse(expression, out intValue);
}
return intValue;
}
public static string CombUrlTxt(string _url, string _keys, params string[] _values)
{
StringBuilder urlParams = new StringBuilder();
try
{
string[] keyArr = _keys.Split(new char[] { '&' });
for (int i = 0; i < keyArr.Length; i++)
{
if (!string.IsNullOrEmpty(_values[i]) && _values[i] != "0")
{
_values[i] = UrlEncode(_values[i]);
urlParams.Append(string.Format(keyArr[i], _values) + "&");
}
}
if (!string.IsNullOrEmpty(urlParams.ToString()) && _url.IndexOf("?") == -1)
urlParams.Insert(0, "?");
}
catch
{
return _url;
}
return _url + DelLastChar(urlParams.ToString(), "&");
}
public static string UrlEncode(string str)
{
if (string.IsNullOrEmpty(str))
{
return "";
}
str = str.Replace("'", "");
return HttpContext.Current.Server.UrlEncode(str);
}
//删除最后结尾的指定字符后的字符
public static string DelLastChar(string str, string strchar)
{
if (string.IsNullOrEmpty(str))
return "";
if (str.LastIndexOf(strchar) >= 0 && str.LastIndexOf(strchar) == str.Length - 1)
{
return str.Substring(0, str.LastIndexOf(strchar));
}
return str;
}
//返回分页页码
public static string OutPageList(int pageSize, int pageIndex, int totalCount, string linkUrl, int centSize)
{
//计算页数
if (totalCount < 1 || pageSize < 1)
{
return "";
}
int pageCount = totalCount / pageSize;
if (pageCount < 1)
{
return "";
}
if (totalCount % pageSize > 0)
{
pageCount += 1;
}
if (pageCount <= 1)
{
return "";
}
StringBuilder pageStr = new StringBuilder();
string pageId = "__id__";
string firstBtn = "上一页»";
string lastBtn = "下一页»";
string firstStr = "1";
string lastStr = "" + pageCount.ToString() + "";
if (pageIndex <= 1)
{
firstBtn = "«上一页";
}
if (pageIndex >= pageCount)
{
lastBtn = "下一页»";
}
if (pageIndex == 1)
{
firstStr = "1";
}
if (pageIndex == pageCount)
{
lastStr = "" + pageCount.ToString() + "";
}
int firstNum = pageIndex - (centSize / 2); //The page number starting in the middle
if (pageIndex < centSize)
firstNum = 2;
int lastNum = pageIndex + centSize - ((centSize / 2) + 1); //The page number at the end of the middle
if (lastNum >= pageCount)
lastNum = pageCount - 1; ;/span>");
pageStr.Append(firstBtn + firstStr);
if (pageIndex >= centSize)
{
pageStr.Append("...< ) {
pageStr.Append("" + i + "");
pageStr.Append ("" + i + "");
if (PageCount -PageIndex & GT; CentSize- (CentSize / 2))
{
PageStr.appnd ("& LT; span & gt; ... & lt; / span & gt;");
}
pageStr.Append(lastStr + lastBtn);
out out out‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ } } string newStr)
, newStr);
}
public static string GetCookie(string strName, string key)
{
if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null && HttpContext.Current.Request.Cookies[strName][key] != null)
return UrlDecode(HttpContext.Current.Request.Cookies[strName][key].ToString());
return "";
}
public static string UrlDecode(string str)
{
if (string.IsNullOrEmpty(str))
{
return "";
}
return HttpContext.Current.Server.UrlDecode(str);
}
public static void WriteCookie(string strName, string key, string strValue, int expires)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
if (cookie == null)
{
cookie = new HttpCookie(strName);
}
cookie[key] = UrlEncode(strValue);
cookie.Expires = DateTime.Now.AddMinutes(expires);
HttpContext.Current.Response.AppendCookie(cookie);
}
}
Bussiness
命名空间
public class Business
{
private readonly DAL.xxx xxxDal;
public Business()
{
xxxDal = new DAL.xxx();
}
public List
{
return xxxDal.GetList(pageSize, pageIndex, strWhere, filedOrder, out recordCount,out totalIncome);
}
}
DAL
命名空间
public partial class xxx
{
public List
{
totalIncome = 0;
StringBuilder strSql = new StringBuilder();
strSql.Append(@"select a.oid,ocreatetime,a.oaccname,a.oacctel,(select ucardnum from AppUser where uid=a.ouid) as ucardnum,c.pname,
otype,ISNULL(b.corealmoney,0) as corealmoney,ISNULL(b.cooid,0) as cooid,
omoney,ISNULL(coprate,0) coprate,ISNULL(codrawfee,0) codrawfee,ISNULL(codowndrawfee,0) codowndrawfee,ISNULL(d.uname,'无') as uname,
ISNULL(b.couserrate,0) as couserrate,
ROW_NUMBER() over(order by ocreatetime desc) r from xxx a left join
(select cooid,coprate,comoney,corealmoney,codowndrawfee,codrawfee,couupperid,couserrate from xxx where costatus=1)b
on a.oid=b.cooid join xxx c on a.opid=c.pid
left join xxx d on b.couupperid=d.[uid] where a.ostatus=1 ");
if (strWhere.Trim() != "")
{
strSql.Append(strWhere);
}
using (var context = DataBaseConnection.GetSdkBaseConnection())
{
recordCount = context.ExecuteScalar
if (recordCount > 0)
{
StringBuilder strSql2 = new StringBuilder();
strSql2.Append(@"select SUM(corealmoney) from xxx a left join
(select cooid,coprate,corealmoney,codowndrawfee,comoney,codrawfee,couupperid,couserrate from xxx where costatus=1)b
on a.oid=b.cooid join xxx c on a.opid=c.pid
left join xxx d on b.couupperid=d.[uid] where a.ostatus=1 ");
if (strWhere.Trim() != "")
{
strSql2.Append(strWhere);
strSql2. ToString(), filedOrder)).ToList( ;
// ROW_NUMBER high-efficiency paging (only supports MSSQL2005 and above)
public static class PagingHelper{
// Get the paging SQL statement. The default row_number is the key word. This field name is not allowed in all tables.
public static string CreatePagingSql(int _recordCount, int _pageSize, int _pageIndex, string _safeSql, string _orderField)
Count + _pageSize - 1 ) / _pageSize;//Check the current page numberif (_pageIndex < 1)
else if (_pageIndex > pageCount)pageCount) );newSafeSql.AppendFormat ("SELECT ROW_NUMBER() OVER(ORDER BY {0}) as row_number,", _orderField);
newSafeSql.Append(_safeSql.Substring(_safeSql.ToUpper().IndexOf("SELECT") + 6));
sbSql.Append(") AS T");sbSql.AppendFormat(" WHERE row_number between {0} and {1}", ((_pageIndex - 1) * _pageSize) + 1, _pageIndex * _pageSize);
Return sbSql.ToString();}// Get the total number of records SQL statement
public static string CreateCountingSql(string _safeSql)
{
return string.Format(" SELECT COUNT(1) AS RecordCount FROM ({0}) AS T ", _safeSql);
}
}
The above is the detailed content of How to implement program paging in .NET. For more information, please follow other related articles on the PHP Chinese website!