日期:2014-05-20  浏览次数:20440 次

repeater搜索后的分页,老是点下一页就重新绑定了!寻好的解决方法啊
repeater搜索后的分页,老是点下一页就重新绑定了!寻好的解决方法啊!

------解决方案--------------------
可否详细一点.
------解决方案--------------------
用link控件分页,如果直接用写 <a 来分页的话,要把查询参数放在 url的后面,并在绑定时要接收参数来搜索.
------解决方案--------------------
呵呵,简单点的就用dataadapter.fill的分页填充功能,代码如下:
public int pagenum=1,pagecount=1,num=5;
public SqlConnection SconnStr=null;
public DataTable mydt=null;DataView myView=null;

protected void Page_Load(Object sender, EventArgs E)
{
SconnStr= new SqlConnection( "server=127.0.0.1;uid=sa;pwd=sa;database=fyj ");
if(ViewState[ "pagenum "]==null){
SconnStr.Open();
SqlCommand Countcmd= new SqlCommand( "select count(*) as co from users ",SconnStr);
SqlDataReader Countdr=Countcmd.ExecuteReader();
if(Countdr.Read()){
pagecount=Int32.Parse(Countdr[ "co "].ToString())/num;
if(Int32.Parse(Countdr[ "co "].ToString())%num> 0) pagecount=pagecount+1;
if(pagecount> =1) ViewState[ "pagecount "]=pagecount;
}
SconnStr.Close();
ViewState[ "pagenum "]=pagenum;
Load(sender,e);
}else{
pagenum=(int)ViewState[ "pagenum "];
pagecount=(int)ViewState[ "pagecount "];
}
}
//检索数据并填充到DateSet,创建试图
private void Load(Object sender, EventArgs E)
{
if(pagenum> =pagecount) pagenum=pagecount;
if(pagenum <pagecount) pagenum=1;
int start=(pagenum-1)*num;
SqlDataAdapter sda=new SqlDataAdapter( "select * from users order by id ",SconnStr)
DateSet ds=new DataSet();
sda.Fill(ds,start,num, "User ");
mydt=ds.Tables[ "User "];
myView=new DataView(mydt);
BindList();
}
//绑定
private void BindList(){
test.DataSource=myView;
test.DataBind();
}
//上一页
protected void P_Click(Object sender,EventArgs e){
pagenum=(int)ViewState[ "pagenum "];
pagenum--;
(int)ViewState[ "pagenum "]=pagenum;
Load(sender,e);
}
//下一页
protected void P_Click(Object sender,EventArgs e){
pagenum=(int)ViewState[ "pagenum "];
pagenum++;
(int)ViewState[ "pagenum "]=pagenum;
Load(sender,e);
}

------解决方案--------------------
你可以试试用这个免费分页控件: www.webdiyer.com
有详细的示例和文档,包括你要的搜索示例
------解决方案--------------------
我用PagedDataSource分的页,本来带 "新 "的数据是2条,总共记录是4条,不搜索的时候是4条,搜 "新 "就出来说是2条,我是一条记录一页,结果,我点下一页,一下就又是4条记录了!!
--------------
基本你这里代码有问题
------解决方案--------------------
你需要把搜索条件传到另外的页...