我写了个 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
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
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 全部代码