} else { str= " and occupiedNum LIKE '%"+ this.Text1.Value.Trim() +"%' "; } Session["show400Page"] = pc; _pageCurrent = pc; string sql = string.Format(@"select left(occupiedNum,3) + 'XXX' + right(occupiedNum,4) as show,occupiedNum from (select top {0} occupiedNum from (select top {1} occupiedNum from s_occupy where flag = 0 {2} order by occupiednum desc) a order by occupiednum ) b order by occupiednum desc",_pageSize,_pageCurrent * _pageSize,str); DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.DBConnectionString, CommandType.Text, sql); for (int i = 0;i <= ds.Tables[0].Rows.Count - 1;i++) { addlist.InnerHtml += string.Format("<li><a href=\"Detail.aspx?num={1}\">{0}</a></li>" ,ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][1].ToString());
namespace WebIPCon.Admin
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class Show400 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlGenericControl addlist;
protected System.Web.UI.HtmlControls.HtmlGenericControl Showtitl; private int _pageSize;//每页显示的数据条数
private int _pageCurrent;//当前显示的页
private int _dataCount;
protected System.Web.UI.HtmlControls.HtmlInputButton Button1;
protected System.Web.UI.HtmlControls.HtmlInputText Text1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.HtmlControls.HtmlInputText few;//一共有点数据条数
private int _pageCount;//一共有多少页
private void Page_Load(object sender, System.EventArgs e)
{
getpage(); if (Session["show400Page"] != null)
{
_pageCurrent = int.Parse(Session["show400Page"].ToString());
}
else
{
_pageCurrent = 1;
} if (Request["page"] != null)
{
string ab = Request["page"].ToString(); if (ab == "first")
{
setView(1);
} if (ab == "last")
{
setView(_pageCount);
} if (ab == "prio")
{
if(_pageCurrent > 1)
{setView(_pageCurrent - 1);}
else
{setView(1);}
} if (ab == "next")
{
if (_pageCurrent < _pageCount)
{setView(_pageCurrent + 1);}
else
{setView(_pageCount);}
}
if(ab=="num")
{
if (Request["pnum"] != null)
{
string pnum=Request["pnum"].ToString();
setView(Convert.ToInt32(pnum));
}
} }
else
{
setView(_pageCurrent);
}
}
private void getpage()
{
string sql = "select count(*) as C from s_occupy where flag = 0 ";
DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.DBConnectionString, CommandType.Text, sql);
_dataCount = int.Parse(ds.Tables[0].Rows[0][0].ToString());
_pageSize = 36; this.Response.Write(_dataCount);
_pageCount = _dataCount / _pageSize;
if (_dataCount % _pageSize != 0)
{
_pageCount++;
}
}
private void setView(int pc)
{
addlist.InnerHtml="";
string str=""; if(this.Text1.Value.Trim()=="")
{
str="";
}
else
{
str= " and occupiedNum LIKE '%"+ this.Text1.Value.Trim() +"%' ";
}
Session["show400Page"] = pc;
_pageCurrent = pc;
string sql = string.Format(@"select left(occupiedNum,3) + 'XXX' + right(occupiedNum,4) as show,occupiedNum from
(select top {0} occupiedNum from (select top {1} occupiedNum from s_occupy where flag = 0 {2} order by occupiednum desc) a order by occupiednum ) b
order by occupiednum desc",_pageSize,_pageCurrent * _pageSize,str);
DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.DBConnectionString, CommandType.Text, sql); for (int i = 0;i <= ds.Tables[0].Rows.Count - 1;i++)
{
addlist.InnerHtml += string.Format("<li><a href=\"Detail.aspx?num={1}\">{0}</a></li>"
,ds.Tables[0].Rows[i][0].ToString(),
ds.Tables[0].Rows[i][1].ToString());
}
Showtitl.InnerHtml = string.Format("第{0}页 共{1}页 号码总数:{2}",_pageCurrent,_pageCount,_dataCount);
} private void Button2_Click(object sender, System.EventArgs e)
{
}
}
}
我也是这样想的啊
但是点下一页的时候是重新刷新页面
所以老是取不到textbox的值啊
这样等你输入条件查询的时候就可以用同一个sql了 然后把查询的条件保存 用viewstate 这样点分页下一页的时候实际是重新查询的
private void getpage(string sql)通过传入sql的方式来灵活查询,然后在Load判断你的查询是否有值,进行sql语句组装
if(!Page.IsPostBack)
{
//代码
}
里
在没有查询前,该session是null
查询后,把查询条件放到session中(可以是最原始的输入内容,也可以是根据输入内容组合后的查询条件)
然后,在点分页后,读这个session(判断是否是有条件分页),然后把它转给存储过程或直接组合到SQL语句中获取下页内容。