需要重写两个方法: LoadViewState(object savedState)和 SaveViewState() private bool _refreshState; private bool _isRefresh; protected override void LoadViewState(object savedState) { object[] AllStates = (object[]) savedState; base.LoadViewState(AllStates[0]); _refreshState = bool.Parse(AllStates[1].ToString()); _isRefresh = _refreshState == bool.Parse(Session["__ISREFRESH"].ToString()); } protected override object SaveViewState() { Session["__ISREFRESH"] = _refreshState; object[] AllStates = new object[2]; AllStates[0] = base.SaveViewState(); AllStates[1] = !(_refreshState); return AllStates; } //页面刷新时,的测试代码 private void Button1_Click(object sender, System.EventArgs e) { if(_isRefresh) { Label1.Text = "This is Page Refresh"; } else { Label1.Text = "This is Button Click"; } } 很有用,所以收藏了