我想做一个翻页类
文件:default.aspx, default.asp.cs ,show_page.cs
命名空间:
guestbook._default
show_page
show_page.cs文件内容using System;
using System.Data;
using System.Data.OleDb;
using System.Web.UI.WebControls;
using System.Web;
namespace show_page
{
/// <summary>
/// show_page 的摘要说明。
/// </summary>
public class show_page
{
 System.Web.UI.WebControls.Label lblCurrentPage;
 System.Web.UI.WebControls.HyperLink lnkPrev;
 System.Web.UI.WebControls.HyperLink lnkNext;
public show_page()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public PagedDataSource show_page_1(int pages,int PageSize,DataView dv)
{
System.Web.UI.WebControls.PagedDataSource objPds = new System.Web.UI.WebControls.PagedDataSource();
objPds.DataSource = dv;
objPds.AllowPaging = true;
objPds.PageSize = PageSize;
int CurPage;
if (pages > 1)
CurPage=Convert.ToInt32(pages);
else
CurPage=1; objPds.CurrentPageIndex = CurPage-1; lblCurrentPage.Text = "当前页:" + CurPage.ToString();//出错:未将对象引用设置到对象的实例(前面不是定义的吗?web控件在default.aspx)
           
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=HttpContext.Current.Request.Url.PathAndQuery + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage)
lnkNext.NavigateUrl=HttpContext.Current.Request.Url.PathAndQuery+ "?Page=" + Convert.ToString(CurPage+1);
return objPds;
} }
}
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 35:  objPds.CurrentPageIndex = CurPage-1;
行 36: 
行 37:  lblCurrentPage.Text = "当前页:" + CurPage.ToString();
行 38:             //HttpRequest hr=new HttpRequest.httpR
行 39:  if (!objPds.IsFirstPage)
 

解决方案 »

  1.   

    1.检查lblCurrentPage.Text 是否存在,以及是否有runat=server
      

  2.   

    存在,有runat=server
    文件default.aspx :
    <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="atonGuestBook._default" %> <span runat="server">
       <asp:label ID="lblCurrentPage" runat="server"></asp:label>
    <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
    <asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink></span>
      

  3.   

    protected System.Web.UI.WebControls.Label lblCurrentPage;
      

  4.   

    show_page_1方法调用时,页面控件还没有初始化吧
      

  5.   

    请详细参考asp。net的生命周期
      

  6.   

    CurPage.ToString()把这个改成Convert.ToString(CurPage)试试?另外,我觉得还是lblCurrentPage的问题.
      

  7.   

    改了还是不行,我都认为是lblCurrentPage的问题.因为我把绑定数据的代码注释后就能正常了.
    是不是所在空间不同出错.
    因为lblCurrentPage._default在guestbook命名空间中,而现在要在show_page.show_page中进行操作.
      

  8.   

    我在default.asp.cs绑定数据就没有出错.是不是不可在另一命名空间操作本命名空间的web控件.