我写了个 WEB用户控件  用来分页  我在控件里与了个dataBinding的方法用来初始化当前页数和总页数
 private void dataBinding()
            {
                int newCount = 0;
                int PageCount = 0;
                if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.datatable")
                {
                    newCount = ((DataTable)_dg.DataSource).Rows.Count;
                }
                else if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataview")
                {
                    newCount = ((DataView)_dg.DataSource).Table.Rows.Count;
                }
                else if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataset")
                {
                    newCount = ((DataSet)_dg.DataSource).Tables[0].Rows.Count;
                }                pageCount = (int)((newCount - 1) / pagesize + 1);
                
                             
                
                         下面这三句   出错
                pageNumber.Text = (_dg.PageIndex + 1).ToString() + "/" + PageCount.ToString();
                                            pageBulk.Text = pagesize.ToString();
                recordNumber.Text = newCount.ToString();
            } 但是我这个方法在引用这个控件的一个LABEL时 报错  未将对象引用设置到对象的实例    ,此时 在调试状态下  LABEL显示为NULL

解决方案 »

  1.   

    你的label 是不是html控件? 你检查下有没有id 和runat="server" 两个属性 或者 .aspx 页面有没有codebehind .cs文件
      

  2.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    namespace userControls
    {
        public delegate void BindDataDelegate();//事件委托
        public partial class UserControls_pageGridView : System.Web.UI.UserControl
        {
           
                /// <summary>
                /// 实现GridView控件的分页显示
                /// </summary>            private BindDataDelegate BindData;
                private GridView _dg;
                private int pagesize = 1;//默认的分页数      
                private void Page_Load(object sender, System.EventArgs e)
                {            }
                /// <summary>
                /// 主方法
                /// </summary>
                /// <param name="adg">GridView控件名</param>
                /// <param name="NewBind">数据绑定事件委托</param>
                /// <param name="iPageSize">每页显示数</param>
                public void SetTarget(GridView adg, BindDataDelegate NewBind, int iPageSize)
                {
                    _dg = adg;
                    BindData = new BindDataDelegate(NewBind);
                    _dg.DataBinding += new System.EventHandler(this.BeforeDataBinding); 
                    _dg.AllowPaging = true;
                    pagesize = iPageSize;
                    _dg.PageSize = pagesize;

                }            
                //分页按钮事件
                public void NavigationButton_Click(object sender, System.Web.UI.ImageClickEventArgs e)
                {
                    string strCommandName = ((ImageButton)sender).ID;//取得事件的对象名                switch (strCommandName)
                    {
                        case "First":
                            _dg.PageIndex = 0;//跳转到首页
                            PageOperate();
                            break;
                        case "Previous":
                            _dg.PageIndex = Math.Max(_dg.PageIndex - 1, 0);//跳转到上一页
                            PageOperate();
                            break;
                        case "Next":
                            _dg.PageIndex = Math.Min(_dg.PageIndex + 1, _dg.PageCount - 1);//跳转到下一页
                            PageOperate();
                            break;
                        case "Lastly":
                            _dg.PageIndex = _dg.PageCount - 1;//跳转到最后一页
                            PageOperate();
                            break;
                    }
                    BindData();//绑定数据
                    
                }
                //页次显示改变
                private void PageOperate()
                {
                    PageNumber.Text = (_dg.PageIndex + 1).ToString() + "/" + _dg.PageCount.ToString();//页次
                    PageBulk.Text = pagesize.ToString();
                }            //页面跳转
                private void Go_Click(object sender, System.Web.UI.ImageClickEventArgs e)
                {
                    if (SelectPage.Text.Trim() != "")
                    {
                        int iPage = int.Parse(SelectPage.Text.Trim()) - 1;
                        if (iPage >= 0 && iPage <= _dg.PageCount - 1)
                        {
                            _dg.PageIndex = iPage;
                            PageOperate();
                            BindData();
                        }
                        else if (iPage > _dg.PageCount - 1)
                        {
                            _dg.PageIndex = _dg.PageCount - 1;
                            BindData();
                        }
                        else
                            _dg.PageIndex = 0;
                        BindData();
                    }
                    else
                        ImageButton1.EnableViewState = true;            }            /// <summary>
                /// GridView数据邦定前,设置导航条
                /// </summary>
                /// <param name="sender"></param>
                /// <param name="e"></param>
                private void BeforeDataBinding()
                {
                    int newCount = 0;
                    int PageCount = 0;
                    if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.datatable")
                    {
                        newCount = ((DataTable)_dg.DataSource).Rows.Count;
                    }
                    else if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataview")
                    {
                        newCount = ((DataView)_dg.DataSource).Table.Rows.Count;
                    }
                    else if (_dg.DataSource.GetType().ToString().ToLower() == "system.data.dataset")
                    {
                        newCount = ((DataSet)_dg.DataSource).Tables[0].Rows.Count;
                    }                PageCount = (int)((newCount - 1) / pagesize + 1);
                                    PageNumber.Text = (_dg.PageIndex + 1).ToString() + "/" + PageCount.ToString();
                    PageBulk.Text = pagesize.ToString();
                    RecordNumber.Text = newCount.ToString();
                }
                 
    }
    }
    usercontrol 全部代码
      

  3.   

    你的代码中没有Label 声明啊