用DATAGRID分页后只显示了第一页的内容:(
按“首页”“上一页”“下一页”“末页”“GOTO页按钮”后,页面刷新一遍但数据没有变化。
private void Page_Load(object sender, System.EventArgs e)
{
// 连接数据库
string strConn="server=***;database=***;uid=***;pwd=***";
cnConnection=new SqlConnection(strConn);
cnConnection.Open();
if(!IsPostBack)
{
BindGrid();
}
}public void BindGrid()//绑定数据库
{
try
{
DataSet DataSetBulletin ;//创建数据集对象
SqlDataAdapter DataAdapterBulletin ;
//以定义的数据库连接来初始化SqlDataAdapter实例
DataAdapterBulletin = new System.Data.SqlClient.SqlDataAdapter ( "SELECT * From SystemBulletin" , cnConnection ) ;
DataSetBulletin = new DataSet ( ) ;
DataAdapterBulletin.Fill ( DataSetBulletin , "SystemBulletin" ) ;
bulletin.DataSource = DataSetBulletin.Tables [ "SystemBulletin" ].DefaultView ;
bulletin.DataBind ( ) ;//实现数据绑定
ShowStatsPage();//显示当前页数和总页数
} catch(System.Exception ex)
{
Response.Write(ex.Message.ToString());
return;
}
}private void PagerButtonClick(object sender, System.EventArgs e)
{
//获得LinkButton(首页,上一页,下一页,末页)的参数值
String arg = ((LinkButton)sender).CommandArgument; switch(arg)
{
case ("next"):
if (bulletin.CurrentPageIndex < (bulletin.PageCount - 1))
         bulletin.CurrentPageIndex ++;
break;
case ("prev"):
if (bulletin.CurrentPageIndex > 0)
bulletin.CurrentPageIndex --;
break;
case ("first"):
bulletin.CurrentPageIndex=0;
break;
case ("last"):
bulletin.CurrentPageIndex = (bulletin.PageCount - 1);
break;
default:
//本页值
bulletin.CurrentPageIndex = Convert.ToInt32(arg);
break;
}
BindGrid();
}public void ShowStatsPage()
{
//显示当前页数和总页数
BCurrentIndex.Text = "[当前为第" + ((int)bulletin.CurrentPageIndex+1) + "页]";
BPageCount.Text = "[共" + bulletin.PageCount + "页]";
}private void bulletin_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//处理按下数字的方法
bulletin.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}private void GotoButton_Click(object sender, System.EventArgs e)
{
//页面直接跳转的代码
if(GotoPage.Text.Trim()!="")
{
int PageI=Int32.Parse(GotoPage.Text.Trim())-1;
if (PageI >=0 && PageI < (bulletin.PageCount))
bulletin.CurrentPageIndex = PageI ;

BindGrid();
}#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{    
this.Load += new System.EventHandler(this.Page_Load);
this.bulletin.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.bulletin_PageIndexChanged);
}

解决方案 »

  1.   

    因为你翻叶后DATAGRID数据绑订后,DATAGRID 的CurrentPageIndex=0;
    所以只显示第一叶的内容
      

  2.   

    在翻页事件里面重新绑定数据,设定CurrentPageIndex=CurrentPageIndex+1
      

  3.   

    private void bulletin_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    //处理按下数字的方法
    bulletin.CurrentPageIndex = e.NewPageIndex;
    BindGrid();
    }如果有这段代码的话,说明你是勾选了采用分页导航的选项吧,而你也自己定义了导航按钮,你
    将属性设置里分页下的分页导航取消勾选。上面的这段代码删掉。
      

  4.   

    AllowCustomPaging="True" 察看一下,应该将其设为false
      

  5.   

    刚刚学
    不太明白,放在哪里?
    我写了下面代码了呀
    bulletin.CurrentPageIndex = e.NewPageIndex;
    BindGrid();
      

  6.   

    zhuqingkfv123(竹青),我的AllowCustomPaging是FALSE,我将你说的那段代码删了,但还是不行。问题出在哪里呢?