我的这个datagrid分页时,页数都会显示出来,只是点击第2页时,页面刷新一下,但内容还是第一页的,我在网上找了好长时间,都没有解决,现在只好求助于baidu了.
我的代码如下:
<asp:DataGrid id="ListXinGrid" runat="server" AutoGenerateColumns="False" EnableViewState=true AllowPaging="True"
CellPadding="5" Width="98%" AllowCustomPaging="True" PageSize="5">绑定字段省略
后台代码:
public partial class admin : System.Web.UI.Page
{
int StartIndex=0;
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
BindGrid();
}
}
protected void ListXinDataBind()
{
string strconn = ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(strconn);
string ACsql = "select * from xiaoxi where jieshouren='" + Session["UserId"] + "'order by riqi DESC ";
SqlDataAdapter Ggsda = new SqlDataAdapter(ACsql, conn);
DataSet ACds = new DataSet();
try
{
Ggsda.Fill(ACds, StartIndex, ListXinGrid.PageSize, "CurDataTable");
Ggsda.Fill(ACds, "AllDataTable");
ListXinGrid.VirtualItemCount = ACds.Tables["AllDataTable"].Rows.Count;
ListXinGrid.DataSource = ACds.Tables["CurDataTable"];
ListXinGrid.DataBind();
}
catch (Exception error)
{
Response.Write(error.ToString());
}
conn.Close();
}
private void ListXinGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
ListXinGrid.CurrentPageIndex = e.NewPageIndex;
StartIndex = ListXinGrid.PageSize * ListXinGrid.CurrentPageIndex;
ListXinDataBind();
}
參考答案:private void newdg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.newdg.CurrentPageIndex=e.NewPageIndex;
this.newdg.DataBind();
}
先写这样一个函数,然后回到设计页面,点击datagrid的属性,点击属性上方的“闪电”形状的“事件”按钮,在里面有个PageIndexChanged选项,将它的值设为newdg_PageIndexChanged就搞定了,给分吧。