|
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(); } 无论点击第几页显示的都是开始的数据!请大虾帮忙!! |
|
|
|
你的DataGrid 的DataBind()方法不要放在if(!Page.IsPostBack){}中,放在外面!
|
|
|
不会吧??
|
|
|
将:
if(!Page.IsPostBack) { .... bindDB(); } 改为: if(!Page.IsPostBack) { bindDB(); } |
|
|
到DATAGRID的属性页里查看事件,看看这个DGPageIndex_Changed事件是否丢失了,如果你用的是VS.NET开发的话,经常会出现这样丢失事件的情况
|
|
|
只有这一个原因啦,肯定是没有执行啦
|
|
|
同意,分页事件丢了
|
|
|
DGnews.CurrentPageIndex = e.NewPageIndex;
bindDB(); 应该改为: DGnews.CurrentPageIndex=e.NewPageIndex; DGnews.DataBind(); |
|
|
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(); } |
|
|
改成
private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { bindDB(); } } |
|
|
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(); } |
|
|
我看了大家的意见,似乎都是要求去掉VirtualItemCount的设置段,但是我的AllowCustomPaging="True",所以必须设置,否则根本就无法出现1后面的页码,我想问题应该不在这里,分页的代码执行了,我输出CurrentPageIndex的值也没有问题,但是数据却没有变化,不知道为什么
|
|