上面是源代码,他分页显示出来了,但我点击第二页的时候,他就报无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。源错误:
行 147: {
行 148: DataGrid1.CurrentPageIndex = e.NewPageIndex;
行 149: DataGrid1.DataBind();
行 150:
行 151:
源文件: c:\inetpub\wwwroot\testpage2\webform1.aspx.cs 行: 149 堆栈跟踪:
[HttpException (0x80004005): 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。]
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
testPage2.WebForm1.DataGrid1_PageIndexChanged(Object source, DataGridPageChangedEventArgs e) in c:\inetpub\wwwroot\testpage2\webform1.aspx.cs:149
System.Web.UI.WebControls.DataGrid.OnPageIndexChanged(DataGridPageChangedEventArgs e)
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
请各位大哥帮我看看,问题出在那里
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。源错误:
行 147: {
行 148: DataGrid1.CurrentPageIndex = e.NewPageIndex;
行 149: DataGrid1.DataBind();
行 150:
行 151:
源文件: c:\inetpub\wwwroot\testpage2\webform1.aspx.cs 行: 149 堆栈跟踪:
[HttpException (0x80004005): 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。]
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
testPage2.WebForm1.DataGrid1_PageIndexChanged(Object source, DataGridPageChangedEventArgs e) in c:\inetpub\wwwroot\testpage2\webform1.aspx.cs:149
System.Web.UI.WebControls.DataGrid.OnPageIndexChanged(DataGridPageChangedEventArgs e)
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
请各位大哥帮我看看,问题出在那里
解决方案 »
- 先谢谢。VS运行编译通过,但数据库写不进去
- 在asp里怎么像asp.net里的sitemappath导航。
- 如何设置使DataList中行间距不随鼠标的滚动改变???
- asp.net 文件上传出错 提示 找不到文件
- aspx 多个参数问题
- 添加和修改是共用同一页面好还是分开好,还是根据情况而定
- Import Namespace="System.Data.ADO"出错?
- 红色求救:使用Application.BeginRequest后,怎样能让小文件在本页面中自行处理上传而不用在BeginRequest中处理?
- 求教一个关于cookie,session的问题。
- TextBox如何触发失去焦点事件?
- 如何实现通过客户端请求,web服务器自动拷贝其所在局域网里面另一台机器上的声音文件,并转换为标准wav后在客户端进行播放
- datalist问题
DataGrid1.DataBind();
这个地方有个严重的问题,你的数据源呢?你需要把数据源传递过来!
dataSet11 = (DataSet1)Cache["ds"];
DataGrid1.CurrentPageIndex = e.NewPageIndex;
DataGrid1.DataBind();
{
this.sqlDataAdapter1.Fill(dataSet11);
this.DataGrid1.DataBind();
}
需要该一点
if (!this.Page.IsPostBack)
{
this.sqlDataAdapter1.Fill(dataSet11);
this.DataGrid1.DataBind();
Cache["ds"] = dataSet11 ;
}
DataGrid1.DataMember=dataSet11.Tables[0].ToString();
DataGrid1.AllowPaging = true;
DataGrid1.PagerStyle.Mode =PagerMode.NumericPages;
DataGrid1.PagerStyle.PageButtonCount = 2;
DataGrid1.PageSize = 2;
this.sqlDataAdapter1.Fill(dataSet11);
this.DataGrid1.DataBind(); 写到一块,放进一个方法里,比如叫之为GridBind();
在page_load方法里
if(!Page.IsPostBack)
this.GridBind();
在DataGrid1_PageIndexChanged里
DataGrid1.CurrentPageIndex = e.NewPageIndex;
this.GridBind();
按照你的方法,错误是不抱了,但点击下一页的时候,datagrid一片空白,没有显示了
protected string szConn;
protected SqlConnection cn; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
szConn=ConfigurationSettings.AppSettings["Forum"];
cn = new SqlConnection(szConn);
if(!IsPostBack)
{
BindGrid();
}
} #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion public void BindGrid()
{
string szSql = "select threadID , threadName from Threads";
SqlDataAdapter adp = new SqlDataAdapter(szSql,cn);
DataSet ds = new DataSet();
adp.Fill(ds);
DataGrid1.DataKeyField = "threadID";
DataGrid1.DataSource = ds.Tables[0].DefaultView;
DataGrid1.DataBind(); }
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}
this.GridBind();呵呵,这个是肯定可用的 ^_^
DataGrid1.AllowPaging = true;
DataGrid1.PagerStyle.Mode =PagerMode.NumericPages;
DataGrid1.PagerStyle.PageButtonCount = 2;
DataGrid1.PageSize = 2;
你别在运行时设置这些东西,特别是AllowPaging,你在属性生成器里设置这
this.GridBind();