asp.net翻页问题

bujing921 2009-05-11 05:36:16
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NewArticle : System.Web.UI.Page
{
protected string strWheres = "";
protected void Page_Load(object sender, EventArgs e)
{
int iCurrentPage = Request.QueryString["page"] == null ? 1 : Convert.ToInt32(Char.ChkStr(Request.QueryString["page"].ToString()));

strWheres = Request.QueryString["KeyWord"] == null ? "" : Char.ChkStr(Request.QueryString["KeyWord"].ToString());


#region 刷新文章
string strFields = "ID,Title,InTime";
string strTables = "tb_Article";
string strPrimaryKey = "ID";
string strWhere = "";
if (strWheres == "")
{
strWhere = "Deleted = 0";
}
else
{
strWhere = "Deleted = 0 and Title like '%" + strWheres + "%'or Content like '%" + strWheres + "%'";
}

string strOrderBy = "InTime desc";
int iPageSize = 10;
string strQuerystring = "";
if (strWheres == "")
{
strQuerystring = "NewArticle.aspx?";
}
else
{
strQuerystring = "NewArticle.aspx?KeyWord=" + strWheres;
}

try
{
SqlParameter[] parms = new SqlParameter[]{
new SqlParameter("@Fields",SqlDbType.VarChar,500),
new SqlParameter("@Tables",SqlDbType.VarChar,500),
new SqlParameter("@PrimaryKey",SqlDbType.VarChar,500),
new SqlParameter("@Where",SqlDbType.VarChar,2000),
new SqlParameter("@OrderBy",SqlDbType.VarChar,500),
new SqlParameter("@CurrentPage",SqlDbType.Int,2),
new SqlParameter("@PageSize",SqlDbType.Int,10),
new SqlParameter("@RecordCount",SqlDbType.Int),
new SqlParameter("@PageCount",SqlDbType.Int)
};
parms[0].Value = strFields;
parms[1].Value = strTables;
parms[2].Value = strPrimaryKey;
parms[3].Value = strWhere;
parms[4].Value = strOrderBy;
parms[5].Value = iCurrentPage;
parms[6].Value = iPageSize;
parms[7].Direction = ParameterDirection.Output;
parms[8].Direction = ParameterDirection.Output;

SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "sp_splitpage", parms);
if (dr.HasRows)
{
this.gvArticle.DataSource = dr;
this.gvArticle.DataBind();
}
dr.Close();
dr.Dispose();

int PageCount = Convert.ToInt32(parms[8].Value);

if (iCurrentPage > PageCount)
{
iCurrentPage = PageCount;
}
else if (iCurrentPage <= 0)
{
iCurrentPage = 1;
}

string PageList = "";
int startPage = 1;
if (iCurrentPage - 5 > 1)
{
startPage = iCurrentPage - 5;
}

int endPage = startPage + 10;

if (endPage > PageCount)
{
endPage = PageCount + 1;
}

if (PageCount == 1)
{
hlFirst.Visible = false;
hlPre.Visible = false;
lblPage.Visible = false;
hlNext.Visible = false;
hlLast.Visible = false;
}
else
{
for (int i = startPage; i < endPage; i++)
{
if (i == iCurrentPage)
{
PageList += "<span class=click>" + i + "</span> ";
}
else
{
PageList += "<a href='" + strQuerystring + "&page=" + i + "'>" + i + "</a> ";
}
}

lblPage.Text = PageList;
hlFirst.NavigateUrl = strQuerystring + "&page=1" ;
hlLast.NavigateUrl = strQuerystring + "&page=" + PageCount;

if (iCurrentPage == 1)
{
hlFirst.Visible = false;
hlPre.Visible = false;
lblPage.Visible = true;
hlNext.Visible = true;
hlNext.NavigateUrl = strQuerystring + "&page=" + (iCurrentPage + 1);
}
else if (iCurrentPage > 1 && iCurrentPage < PageCount)
{
hlFirst.Visible = true;
hlPre.Visible = true;
lblPage.Visible = true;
hlNext.Visible = true;
hlLast.Visible = true;
hlPre.NavigateUrl = strQuerystring + "&page=" + (iCurrentPage - 1) ;
hlNext.NavigateUrl = strQuerystring + "&page=" + (iCurrentPage + 1);
}
else
{
hlFirst.Visible = true;
hlPre.Visible = true;
lblPage.Visible = true;
hlNext.Visible = false;
hlLast.Visible = false;
hlPre.NavigateUrl = strQuerystring + "&page=" + (iCurrentPage - 1) ;
hlNext.NavigateUrl = strQuerystring + "&page=" + (iCurrentPage + 1);
}
}
}
catch (Exception ex)
{
throw new Exception("错误是" + ex.Message + "---------发生在" + ex.Source);
}

#endregion
}

}

这是我写的翻页程序
结果是http://localhost/zhongguo/NewArticle.aspx?KeyWord=十一
现在也两页的信息
但是我在翻页时网址在变,可是现实的还是第一页的信息
这是怎么回事呀


}
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
renjunli123456 2009-05-11
  • 打赏
  • 举报
回复
学习
hechaner 2009-05-11
  • 打赏
  • 举报
回复
回帖是美德,学习中
wuyq11 2009-05-11
  • 打赏
  • 举报
回复
通过grdiview自定义分页或用aspnetpager,还可使用
public string ShowPage(int PageCount, string Pageno,string ClassID,string strColor)
{
string strL = "",strC="";;
StringBuilder strB=new StringBuilder();
if (Pageno != "")
{
if (int.Parse(Pageno) > PageCount)
{
Pageno = "1";
}
}
if (strColor.Trim().Length <= 0)
strC = "#EEF8F9";
else
strC = strColor;
string str = "";
strB.Append(@"<table cellpadding=""0"" cellspacing=""1"" width=""98%"" height=""21"" align=""center"" bgcolor=""#E0E0E0"" class=""height25"">
<tr><td align=""right"" bgcolor="""+strC+@""">");
if (PageCount > 0)
{
strB.Append(@"[当前第");
if (Pageno != "")
strB.Append(Pageno + "页]/[共" + PageCount.ToString() + "页]");
else
strB.Append("1页]/[共" + PageCount.ToString() + "页]");
}
if (ClassID.Trim() != "")
strL = "&" + ClassID + "";
if (Pageno != "")
{
if (int.Parse(Pageno) > 0)
{
if (int.Parse(Pageno) - 1 > 0)
{
strB.Append(@"<a href=?page=1"+strL);
strB.Append( @">首页</a> |");
strB.Append( @" <a href=?page=");
strB.Append( int.Parse(Pageno) - 1);
strB.Append(strL);
strB.Append(@">上一页</a> |");
}
else
strB.Append(@"<span class=""gray"">首页</span> | <span class=""gray"">上一页</span> |");
if (PageCount - int.Parse(Pageno) > 0)
{
strB.Append(@"<a href=?page=");
strB.Append(int.Parse(Pageno) + 1);
strB.Append(strL);
strB.Append(@">下一页</a> |");
strB.Append( @" <a href=?page=");
strB.Append(PageCount.ToString());
strB.Append(strL);
strB.Append(@">尾页</a>");
}
else
{
strB.Append(@"<span class=""gray"">下一页</span> | <span class=""gray"">尾页</span>");
}
}
else
{
strB.Append(@"<span class=""gray"">首页</span> | <span class=""gray"">上一页</span> |)");
if (PageCount - 1 > 0)
{
strB.Append(@"<a href=?page=");
strB.Append(strL);
strB.Append(@">下一页</a> |");
strB.Append(@" <a href=?page=");
strB.Append(PageCount.ToString());
strB.Append(strL);
strB.Append(@">尾页</a> ");
}
else
{
strB.Append(@"<span class=""gray"">后页</span> | <span class=""gray"">上一页</span>");
}
}
}
else
{
strB.Append(@"<span class=""gray"">首页</span> | <span class=""gray"">上一页</span> |");
if (PageCount - 1 > 0)
{
strB.Append(@"<a href=?page=");
strB.Append("2");
strB.Append(strL);
strB.Append(@">下一页</a> |");
strB.Append(@" <a href=?page=");
strB.Append(PageCount.ToString());
strB.Append(strL);
strB.Append(@">尾页</a> ");
}
else
{
strB.Append(@"<span class=""gray"">下一页</span> | <span class=""gray"">尾页</span>");
}
}
strB.Append(@" 跳转到
<input type=""text"" id=""goPage"" class=""inputText"" class=""inputtext"" style=""text-align:right;width:1em;"">
<input type=""button"" onclick=""javascript:goto();"" value=""GO"" class=""inputButton""/>
<script type=""text/javascript"">function goto(n){var n = document.getElementById(""goPage"").value;n = parseInt(n);if (isNaN(n)){return;}
if (n<=0){n=1;}if (n-1<=0){n=1;}");
strB.Append(@"u=""?page=""+ n +"""+strL+@""";location.href=u;}</script></td></tr></table>");
str=strB.ToString();
return str;
}
编程有钱人了 2009-05-11
  • 打赏
  • 举报
回复
aspnetpager 控件
蓝海D鱼 2009-05-11
  • 打赏
  • 举报
回复
up

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧