为什么我的datagrid分页后显示的总是第一页的数据?

ayiiq180 2003-10-20 06:42:45
代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("./") + "test.mdb");
OleDbCommand cmd=new OleDbCommand("select count(*) from news",conn);
DataSet DS=new DataSet();
OleDbDataAdapter DA=new OleDbDataAdapter();
DA.SelectCommand=cmd;
DA.Fill(DS,"count");
DGnews.VirtualItemCount =System.Convert.ToInt32(DS.Tables[0].Rows[0][0]);
bindDB();
}

}
void bindDB()
{
OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("./") + "test.mdb");
OleDbCommand cmd=new OleDbCommand("select newsid,title from news order by newsid desc",conn);
conn.Open();
DataSet DS=new DataSet();
OleDbDataAdapter DA=new OleDbDataAdapter();
DA.SelectCommand=cmd;
DA.Fill(DS,"newsid");
DGnews.DataSource=DS.Tables[0].DefaultView;

DGnews.DataBind();
conn.Close();
}
public void DGPageIndex_Changed(Object sender, DataGridPageChangedEventArgs e)

{
DGnews.CurrentPageIndex = e.NewPageIndex;
bindDB();

}
无论点击第几页显示的都是开始的数据!请大虾帮忙!!
...全文
153 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayiiq180 2003-10-21
  • 打赏
  • 举报
回复
我看了大家的意见,似乎都是要求去掉VirtualItemCount的设置段,但是我的AllowCustomPaging="True",所以必须设置,否则根本就无法出现1后面的页码,我想问题应该不在这里,分页的代码执行了,我输出CurrentPageIndex的值也没有问题,但是数据却没有变化,不知道为什么
gOODiDEA 2003-10-21
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
bindDB();
}

}
void bindDB()
{
OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("./") + "test.mdb");
OleDbCommand cmd=new OleDbCommand("select newsid,title from news order by newsid desc",conn);
conn.Open();
DataSet DS=new DataSet();
OleDbDataAdapter DA=new OleDbDataAdapter();
DA.SelectCommand=cmd;
DA.Fill(DS,"newsid");
DGnews.DataSource=DS.Tables[0].DefaultView;

DGnews.DataBind();
conn.Close();
}
public void DGPageIndex_Changed(Object sender, DataGridPageChangedEventArgs e)

{
DGnews.CurrentPageIndex = e.NewPageIndex;
bindDB();

}
竹君子 2003-10-20
  • 打赏
  • 举报
回复
改成
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
bindDB();
}
}
51study 2003-10-20
  • 打赏
  • 举报
回复
public void DGPageIndex_Changed(Object sender, DataGridPageChangedEventArgs e)

{
OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("./") + "test.mdb");
OleDbCommand cmd=new OleDbCommand("select newsid,title from news order by newsid desc",conn);
conn.Open();
DataSet DS=new DataSet();
OleDbDataAdapter DA=new OleDbDataAdapter();
DA.SelectCommand=cmd;
DA.Fill(DS,"newsid");
DGnews.DataSource=DS.Tables[0].DefaultView;



DGnews.CurrentPageIndex = e.NewPageIndex;
DGnews.DataBind();

}
muyangzuo 2003-10-20
  • 打赏
  • 举报
回复
DGnews.CurrentPageIndex = e.NewPageIndex;
bindDB();
应该改为:

DGnews.CurrentPageIndex=e.NewPageIndex;
DGnews.DataBind();
haoliqi 2003-10-20
  • 打赏
  • 举报
回复
同意,分页事件丢了
ddangerous169 2003-10-20
  • 打赏
  • 举报
回复
只有这一个原因啦,肯定是没有执行啦
zhangzgl 2003-10-20
  • 打赏
  • 举报
回复
到DATAGRID的属性页里查看事件,看看这个DGPageIndex_Changed事件是否丢失了,如果你用的是VS.NET开发的话,经常会出现这样丢失事件的情况
asam2183 2003-10-20
  • 打赏
  • 举报
回复
将:
if(!Page.IsPostBack)
{
....
bindDB();
}
改为:
if(!Page.IsPostBack)
{
bindDB();
}
ayiiq180 2003-10-20
  • 打赏
  • 举报
回复
不会吧??
redebug 2003-10-20
  • 打赏
  • 举报
回复
你的DataGrid 的DataBind()方法不要放在if(!Page.IsPostBack){}中,放在外面!

62,025

社区成员

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

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

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

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