为什么我在Page_Load事件中加入Not IsPostBack判断后点击分页不能显示数据???

踽踽独行8844 2008-12-12 09:36:20
为什么我在Page_Load事件中加入Not IsPostBack判断后点击分页不能显示数据???

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindgw();
}
//bindgw();
}




protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}


求助各位高手,谢谢
...全文
230 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
half_bucket 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ww85910 的回复:]
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindgw(); //绑定GridView方法
}
}
private void bindgw()
{
//读取数据绑定到GridView
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

[/Quote]
==============================
正解。就这样实现就ok了
Jxiaoshen 2008-12-13
  • 打赏
  • 举报
回复
分页时服务器回发给浏览器,IsPostBack为true,那么bindgw()就不会执行的
Wayne 2008-12-13
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindgw(); //绑定GridView方法
}
}
private void bindgw()
{
//读取数据绑定到GridView
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bindgw()//重新绑定
}
  • 打赏
  • 举报
回复
实际上,你这两段代码都是说明你是使用哪种比较过时的asp.net1.1程序写法。这种写法,在页面回发时(例如你可以在页面上放一个button测试回发),可以看到总是读取数据库,所以它是慢的,而且逻辑严格说有错误(实际上,page_load应该重建上一次页面输出时的控件树而不是读取数据库最新数据库来重建控件树;同时当数据更新时只有在page_load结束以后的某个事件中才执行控件绑定数据源数据,而绝对不是在page_load中执行)。可是,这种3年前应该过时的

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindgw();
}
}

或者

protected void Page_Load(object sender, EventArgs e)
{
bindgw();
}

的代码现在还是充斥网上,真的很多。你可以看看scott mitchell写的asp.net2.0数据编程的教程,例如那个对大量数据分页的例子。你看不到那么多手写的乱代码,对数据的绑定、控制都是由数据源控件封装好的,可以确保高效和逻辑正确地操作。
lintf1986 2008-12-12
  • 打赏
  • 举报
回复
IsPostBack为true的时候表示页面是回发状态,
!IsPostBack表示不是回发,即是第一加载
分页肯定不是第一次加载了,所以bindgw();不能执行
踽踽独行8844 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wsxqaz 的回复:]
因为IsPostBack是false
[/Quote]


那怎么处理啊?
请指教
wsxqaz 2008-12-12
  • 打赏
  • 举报
回复
因为IsPostBack是false
Repeater分页显示 简单的说,先从控件工具箱拖入两个label(currten page当前页,count page总页),四个linkbuttion(首/下页/上页/尾页)。 无非就是+1 -1 的问题, ------------------------ using System; using System.Data; 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; using System.Data.SqlClient; public partial class gonggao : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.labPage.Text = "1"; this.contrlRepeater(); } } //获取指字符个数的字符 public string cuts(string aa,int bb) { if (aa.Length <= bb) { return aa; } else { return aa.Substring(0, bb); } } //Repeater分页控制显示方法 public void contrlRepeater() { pb pb1 = new pb(); DataSet ss = new DataSet(); ss = pb1.returnDs("select top 200 [标题],[时间] from news"); PagedDataSource pds = new PagedDataSource(); pds.DataSource = ss.Tables["temptable"].DefaultView; pds.AllowPaging = true; pds.PageSize = 2; pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1; Repeater1.DataSource = pds; LabCountPage.Text = pds.PageCount.ToString(); labPage.Text = (pds.CurrentPageIndex + 1).ToString(); this.lbtnpritPage.Enabled = true; this.lbtnFirstPage.Enabled = true; this.lbtnNextPage.Enabled = true; this.lbtnDownPage.Enabled = true; if(pds.CurrentPageIndex<1) { this.lbtnpritPage.Enabled = false; this.lbtnFirstPage.Enabled = false; } if (pds.CurrentPageIndex == pds.PageCount-1) { this.lbtnNextPage.Enabled = false; this.lbtnDownPage.Enabled = false; } Repeater1.DataBind(); } protected void lbtnpritPage_Click(object sender, EventArgs e) { this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1); this.contrlRepeater(); } protected void lbtnFirstPage_Click(object sender, EventArgs e) { this.labPage.Text = "1"; this.contrlRepeater(); } protected void lbtnDownPage_Click(object sender, EventArgs e) { this.labPage.Text =this.LabCountPage.Text; this.contrlRepeater(); } protected void lbtnNextPage_Click(object sender, EventArgs e) { this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1); this.contrlRepeater(); } } -----------------

62,269

社区成员

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

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

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

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