datagrid分页:只能显示第一页的数据 自定义分页,但数据为什么总是显示第一页的呢?并且点页码的时候没有反应 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { int startindex; startindex=this.DataGrid1.CurrentPageIndex * this.DataGrid1 .PageSize ; DataGrid1.CurrentPageIndex =e.NewPageIndex ; databind(); LableText(); }这个不对吗? 如果指定allowcustompaging 为假则不存在上述问题 private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { DataGrid1.CurrentPageIndex =e.NewPageIndex ; databind(); LableText(); }这么写 private void Page_Load(...){if(!IsPostBack)BindGrid();}private void BindGrid(){//数据绑定}private void DataGrid1_PageIndexChanged(...){DataGrid1.CurrentPageIndex =e.NewPageIndex ;BindGrid();} 问题依旧,提供一下测试页面还有源代下载。谢谢了测试:http://210.42.228.252/fenye/WebForm1.aspx文件:http://210.42.228.252/fenye/fenye.rar using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Data .SqlClient;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace fenye{ /// <summary> /// WebForm1 /// </summary> public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Panel Panel2; protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Label Label2; protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.LinkButton LinkButton2; protected System.Web.UI.WebControls.LinkButton LinkButton3; protected System.Web.UI.WebControls.LinkButton LinkButton4; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; protected System.Data.SqlClient.SqlCommand sqlSelectCommand1; protected System.Data.SqlClient.SqlConnection sqlConnection1; protected System.Data.DataSet dataSet1; protected System.Web.UI.WebControls.Label Label3; protected System.Web.UI.WebControls.TextBox TextBox1; protected System.Web.UI.WebControls.TextBox TextBox2; protected System.Web.UI.WebControls.DataGrid DataGrid1; protected System.Web.UI.WebControls.Label Label4; protected System.Web.UI.WebControls.Label Label5; protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e) { if(!this.IsPostBack ) { this.DataBind (); } } private void databind() { DateTime dt1 = DateTime.Now; this.sqlDataAdapter1.Fill (this.dataSet1 ); this.DataGrid1 .DataSource =this.dataSet1 .Tables [0].DefaultView ; this.DataBind (); DateTime dt2 = DateTime.Now; this.Label3 .Text ="time:"+(dt2-dt1).ToString(); } private void LableText() { this.Label2 .Text ="page " + (DataGrid1.CurrentPageIndex + 1).ToString() ; this.Label1 .Text ="page"+(this.DataGrid1.PageCount ).ToString (); } private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { DataGrid1.CurrentPageIndex =e.NewPageIndex ; databind(); LableText(); } private void LinkButton1_Click(object sender, System.EventArgs e) { DataGrid1.CurrentPageIndex =0; databind(); LableText(); } private void LinkButton4_Click(object sender, System.EventArgs e) { if(DataGrid1 .CurrentPageIndex<DataGrid1.PageCount -1) { this.DataGrid1 .CurrentPageIndex +=1; } databind(); LableText(); } private void LinkButton3_Click(object sender, System.EventArgs e) { if(DataGrid1.CurrentPageIndex >0) { this.DataGrid1 .CurrentPageIndex =DataGrid1 .CurrentPageIndex-1; } databind(); LableText(); } private void LinkButton2_Click(object sender, System.EventArgs e) { DataGrid1.CurrentPageIndex = (DataGrid1.PageCount - 1); databind(); LableText(); } private void Button1_Click(object sender, System.EventArgs e) { this.DataGrid1 .VirtualItemCount =Int32.Parse (this.TextBox1 .Text ); this.DataGrid1 .PageSize =Int32.Parse (this.TextBox2 .Text ); databind(); this.DataGrid1 .Visible =true; LableText(); } private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item .ItemIndex !=-1) {e.Item .Cells [0].Text =(this.DataGrid1.CurrentPageIndex * this.DataGrid1 .PageSize+e.Item.ItemIndex +1).ToString();} } }} 楼主的LinkButton的事件与DataGrid1_PageIndexChanged是不是做同一件事(小虾我对c#不是很懂)??呵呵~~如果是把LinkButton的事件删去试试,反之给LinkButton加个commandname,以次来区分DataGrid1_PageIndexChanged事件或其他与datagrid相关事件 在分页事件里写下如下代码:datagrid1.CurrentPageIndex = e.NewPageIndex;再重新绑定一下就OK了 一个好玩的问题 如何获得值存储过程的返回值 Oracle这个语句怎么优化能提高查询速率 gridview排序问题 Asp.Net(C#),如何得到上一个转入页的地址? 如何Asp.net页面中,显示动态的HTML? (只有90分了)我点击了编辑按钮后页面只是剧新了一下,就没有反应了。高手帮忙看看是怎么回事呀? datalist,datagrid,repeater显示数据哪一个更快 ?? js eval()计算值 web.config问题~ 哪位知道哪里能下到web服务器控件 treeview? 系统是98,想换成XP,重起后按F1怎么进不了安装界面啊?
{
int startindex;
startindex=this.DataGrid1.CurrentPageIndex * this.DataGrid1 .PageSize ;
DataGrid1.CurrentPageIndex =e.NewPageIndex ;
databind();
LableText();
}这个不对吗?
{
DataGrid1.CurrentPageIndex =e.NewPageIndex ;
databind();
LableText();
}这么写
{
if(!IsPostBack)
BindGrid();
}private void BindGrid()
{
//数据绑定
}
private void DataGrid1_PageIndexChanged(...)
{
DataGrid1.CurrentPageIndex =e.NewPageIndex ;
BindGrid();
}
文件:http://210.42.228.252/fenye/fenye.rar
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data .SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace fenye
{
/// <summary>
/// WebForm1
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Panel Panel2;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.LinkButton LinkButton2;
protected System.Web.UI.WebControls.LinkButton LinkButton3;
protected System.Web.UI.WebControls.LinkButton LinkButton4;
protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
protected System.Data.SqlClient.SqlConnection sqlConnection1;
protected System.Data.DataSet dataSet1;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.Button Button1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack )
{ this.DataBind ();
}
}
private void databind()
{ DateTime dt1 = DateTime.Now;
this.sqlDataAdapter1.Fill (this.dataSet1 );
this.DataGrid1 .DataSource =this.dataSet1 .Tables [0].DefaultView ;
this.DataBind ();
DateTime dt2 = DateTime.Now;
this.Label3 .Text ="time:"+(dt2-dt1).ToString();
}
private void LableText()
{
this.Label2 .Text ="page " + (DataGrid1.CurrentPageIndex + 1).ToString() ; this.Label1 .Text ="page"+(this.DataGrid1.PageCount ).ToString (); }
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex =e.NewPageIndex ;
databind();
LableText();
} private void LinkButton1_Click(object sender, System.EventArgs e)
{
DataGrid1.CurrentPageIndex =0;
databind();
LableText();
} private void LinkButton4_Click(object sender, System.EventArgs e)
{
if(DataGrid1 .CurrentPageIndex<DataGrid1.PageCount -1)
{
this.DataGrid1 .CurrentPageIndex +=1;
}
databind();
LableText();
} private void LinkButton3_Click(object sender, System.EventArgs e)
{
if(DataGrid1.CurrentPageIndex >0)
{
this.DataGrid1 .CurrentPageIndex =DataGrid1 .CurrentPageIndex-1;
}
databind();
LableText();
} private void LinkButton2_Click(object sender, System.EventArgs e)
{
DataGrid1.CurrentPageIndex = (DataGrid1.PageCount - 1);
databind();
LableText();
} private void Button1_Click(object sender, System.EventArgs e)
{
this.DataGrid1 .VirtualItemCount =Int32.Parse (this.TextBox1 .Text );
this.DataGrid1 .PageSize =Int32.Parse (this.TextBox2 .Text );
databind();
this.DataGrid1 .Visible =true;
LableText();
} private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item .ItemIndex !=-1)
{e.Item .Cells [0].Text =(this.DataGrid1.CurrentPageIndex * this.DataGrid1 .PageSize+e.Item.ItemIndex +1).ToString();}
}
}
}
datagrid1.CurrentPageIndex = e.NewPageIndex;
再重新绑定一下就OK了