我做个查询操作用Repeater帮定数据,为了翻页我在Page_Load中加了以下代码
if (Request.QueryString["Page"] != null)
{
bind(); }
}
但是发生的错误是,我在重新点"查询"按钮后,由于页面传递过来的["Page"}参数存在,所以,执行查询操作后,直接跳转到页面传递过来的参数["Page"]中的那一页,而不是第一页,这样不符合要求的.
问各位大虾怎么改才既可以实现翻页,重新查询时可以从记录第一页开始呢,还有一个问题是,我点"刷新"后,也是同样的问题
我的代码如下
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if (Request.QueryString["Page"] != null)
{
bind(); }
else
{
} }
public void bind()
{
strQuery = "select DepartInfo.DepartName, UsersName, PartNo, City_M, Coun_M, WZ_M, Long_M, IP_M, Sum_M from DepartInfo,UserInfo,PartSum_H where UserInfo.DH=PartSum_H.PartNo and DepartInfo.DepartID=PartSum_H.DepartID and PartSum_H.DepartID = '"+int.Parse(dpDptName.SelectedValue.ToString())+"'"; RepeaterBind(); }
private void btnQuery_Click(object sender, System.EventArgs e)
{bind();
} public void RepeaterBind()
{
帮定数据
}请各位帮忙看看 谢谢先
if (Request.QueryString["Page"] != null)
{
bind(); }
}
但是发生的错误是,我在重新点"查询"按钮后,由于页面传递过来的["Page"}参数存在,所以,执行查询操作后,直接跳转到页面传递过来的参数["Page"]中的那一页,而不是第一页,这样不符合要求的.
问各位大虾怎么改才既可以实现翻页,重新查询时可以从记录第一页开始呢,还有一个问题是,我点"刷新"后,也是同样的问题
我的代码如下
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if (Request.QueryString["Page"] != null)
{
bind(); }
else
{
} }
public void bind()
{
strQuery = "select DepartInfo.DepartName, UsersName, PartNo, City_M, Coun_M, WZ_M, Long_M, IP_M, Sum_M from DepartInfo,UserInfo,PartSum_H where UserInfo.DH=PartSum_H.PartNo and DepartInfo.DepartID=PartSum_H.DepartID and PartSum_H.DepartID = '"+int.Parse(dpDptName.SelectedValue.ToString())+"'"; RepeaterBind(); }
private void btnQuery_Click(object sender, System.EventArgs e)
{bind();
} public void RepeaterBind()
{
帮定数据
}请各位帮忙看看 谢谢先
解决方案 »
- IHttpModule的一个问题
- 这样一个需求应该怎么建表?
- SQL2005安装问题
- ASP.NET配置数据源问题
- ArrayList小问题
- 500分求租(20M IIS空间支持ASP.NET+SQLSERVER),借用期1个月
- 朋友说ASP.NET只能做个人服务器是真的码?
- 如何把SqlDataReader[fileds[i]].ToString()加在一个string中呢???
- 关于数据库更新的超级难题,来挑战
- redis的问题
- 小问题。各位,看看这个关于回传服务器的问题怎么解决?
- 一个ASPX页面,什么原因可能导致Page.RegisterStartupScript("错误","<script>alert('您的权限不够')</script>");弹不出来?
{
bind(); }
else
{
}
放到 if(!Page.IsPostBack)的外面,每次都判断一次
还是不行,同样一个问题,Request.QueryString["Page"] 一直存在,所以进行新的查询后,还是会从传过来的页面参数的那页开始显示
有没有其他方法呢to zhhxx
我也是用按钮的 这样帮定数据时 设置翻页时用Request.QueryString就会出现我描述的问题的
ViewState["CurrentPageIndex"] = 0;
this.bind();
分頁代碼寫在分頁按鈕事件中,如 Btn_NextPage_Click(object sender, System.EventArgs e)
ViewState["CurrentPageIndex"] = ((int)ViewState["CurrentPageIndex"])+1;
this.bind();
我的代码是这样的
不知道如何改成你说的那种
public void RepeaterBind()
{
// Session["Query"]="1";
hr.conn.Open();
SqlDataAdapter myCommand1=new SqlDataAdapter(strQuery,hr.conn);
DataSet ds1=new DataSet();
myCommand1.Fill(ds1,"result");
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds1.Tables["result"].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 25;
int CurPage;
if (Request.QueryString["Page"]!=null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1; objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = "总记录数:<font color=red>"+ objPds.DataSourceCount +"</font>条,每页:<font color=red>"+objPds.PageSize +"</font>条记录,当前页:第<font color=red>" + CurPage.ToString() +"/"+ objPds.PageCount +"</font>页 " ;
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
else
lnkPrev.Text="<font color=666666>上一页</font>";
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
else
lnkNext.Text="<font color=666666>下一页</font>";
if (!objPds.IsFirstPage)
lnkTop.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=1";
else
lnkTop.Text="<font color=666666>首页</font>";
if (!objPds.IsLastPage)
lnkLast.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + objPds.PageCount;
else
lnkLast.Text="<font color=666666>尾页</font>";
ViewState["CurrentPage"]=0;
MyRepeater.DataSource =objPds;
MyRepeater.DataBind ();
hr.conn.Close();
}
雙擊它們就會出現
private void lnkNext_Click(object sender, System.EventArgs e)
{
ViewState["CurrentPageIndex"] = ((int)ViewState["CurrentPageIndex"])+1;
this.RepeaterBind();
}然后在 public void RepeaterBind() 改一下代碼
objPds.CurrentPageIndex =(int)ViewState["CurrentPageIndex"];
if (objPds.IsLastPage)
{
lnkPrev.Enabled=lnkTop.Enabled = false;//把“上一頁”“首頁”變灰
}//注意加上 {} ,增強可讀性
if (objPds.IsFirstPage)
{
lnkNext.Enabled=lnkLast.Enabled = false;//把“下一頁”“尾頁”變灰
}
lnkPrev.Enabled=lnkTop.Enabled=lnkNext.Enabled=lnkLast.Enabled =true;
我用的是Repeater控件帮盯数据,它不象datagrid有currentpage属性,所以我不知道翻页时该怎么写呢
如果你想在 Page_Load 就要綁定,那么你可這么寫
if(!IsPostBack)
{
this.Btn_Query_Click(null,null);
}
objPds.DataSource = ds1.Tables["result"].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 25;
objPds.CurrentPageIndex =(int)ViewState["CurrentPageIndex"];