为什么页面上得到的数据Npage总是用户控件上次触发的结果
namespace WebApplication1
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls; /// <summary>
/// WebUserPager 的摘要说明。
/// </summary>

public class WebUserPager : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.LinkButton Linkbutton4;
protected System.Web.UI.WebControls.LinkButton Linkbutton3;
protected System.Web.UI.WebControls.LinkButton Linkbutton2;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
protected System.Web.UI.WebControls.Button Button1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
public void cellpage(object sender,EventArgs e)
{
string args = ((LinkButton)sender).CommandName.ToString();
switch(args)
{
case "firstPage":
{
this.Npage = 1;
break;
}
case "priPage":
{
if(this.Npage>1)
{
this.Npage = this.Npage - 1;
}
break;
}
case "nextPage":
{
if(this.Npage+1 <= this.PageCont) 
{
this.Npage = this.Npage + 1;
}
break;
}
default:
{
this.Npage = this.PageCont;
break;
}
} } /// <summary>
/// 绑定数据DataGrid
/// </summary>
/// <param name="da"></param>
public void BindWebDataGrid(DataTable da)
{
this.DataGrid1.DataSource = da;
this.DataGrid1.DataBind();
this.Label1.Text = "总记录数:<font color=blue>"+this.RsCount.ToString()+"</font>,每页条数:<font color=blue>23</font>,总页数:<font color=blue>"+this.PageCont.ToString()+"</font>,当前页:<font color=blue>"+this.Npage.ToString()+"</font>";
}
/// <summary>
/// 当前页
/// </summary>
public int Npage
{
get {return (int)ViewState["npage"];}
set {ViewState["npage"] = value;}
}
/// <summary>
/// 总页数
/// </summary>
public int PageCont
{
get{return (int)ViewState["pageCont"];}
set{ViewState["pageCont"] = value;}
}
/// <summary>
/// 总记录数
/// </summary>
public int RsCount
{
get{return (int)ViewState["rsCont"];}
set{ ViewState["rsCont"] = value;}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
if(!Page.IsValid)
return;
if(Convert.ToInt32(this.TextBox1.Text)>this.PageCont)
{
Response.Write ("<script>alert(\"页码超出范围\");</script>");
}
else if(Convert.ToInt32(this.TextBox1.Text)+1<=this.PageCont)
{
this.Npage = Convert.ToInt32(this.TextBox1.Text);
} }
}
}