ServerContrl1.cs的代码 using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Linq; 
using System.Text; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; namespace ServerControl1 

    [DefaultProperty("CurrentPage")] 
    [ToolboxData(" <{0}:ServerControl1 runat=server> </{0}:ServerControl1>")] 
    public class ServerControl1 : WebControl, IPostBackEventHandler 
    { 
        #region 当前页码 
        [Description("当前选择页码")] 
        [Bindable(true)] 
        [Category("Appearance")] 
        [DefaultValue(1)] 
        public int CurrentPage 
        { 
            get 
            { 
                String ss = Convert.ToString(ViewState["CurrentPage"]); 
                int nn = 0; 
                int.TryParse(ss, out nn); 
                return (nn <= 0) ? 1 : nn; 
            } 
            set 
            { 
                if (value <= 0) 
                { 
                    ViewState["CurrentPage"] = 1; 
                } 
                else 
                { 
                    ViewState["CurrentPage"] = value; 
                } 
            } 
        } 
        #endregion         public delegate void PageChangeEventHandler(object sender, EventArgs e); 
        public event PageChangeEventHandler ChangePageClick; 
        public void RaisePostBackEvent(string eventArgument) 
        { 
            int PageIndex = int.Parse(eventArgument); 
            this.CurrentPage = PageIndex; 
            OnPageChangeClick(new EventArgs()); 
        }         protected virtual void OnPageChangeClick(EventArgs e) 
        { 
            if (ChangePageClick != null) 
            { 
                ChangePageClick(this, e); 
            } 
        } 
        protected override void RenderContents(HtmlTextWriter output) 
        { 
            StringBuilder Str = new StringBuilder(); 
            Str.Append("当前:"+CurrentPage.ToString()); 
            Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage - 1).ToString()) + "\">上一页 </a>"); 
            Str.Append(" <a id=\"" + this.UniqueID + "\" title='' href=\"javascript:" + Page.GetPostBackEventReference(this, (CurrentPage + 1).ToString()) + "\">下一页 </a>"); 
            output.Write(Str.ToString()); 
        } 
    } 

调用页default.aspx 的       <%=ServerControl11.CurrentPage%> 
        <br /> 
        <cc1:ServerControl1 ID="ServerControl11" runat="server" /> 这个显示是对的。即 <%=ServerControl11.CurrentPage%>和当前的页面值相同 
而 default.cs 中 Response.Write(this.ServerControl11.CurrentPage); 却比当前的页面值晚一步。 
请教大侠如何解决才能在 default.cs中同步显示

解决方案 »

  1.   

    回调事件处理完成后,CurrentPage的值才会改变
    把Response.Write(this.ServerControl11.CurrentPage)语句写到OnChangePageClick事件中就可以同步了
      

  2.   

    亲哥哎,整个百度+谷歌  也没有搜到这个词“OnChangePageClick”
      

  3.   

    我不是在webserive那块回答了吗?帖子到处放....
      

  4.   


    ChangePageClick是你自己定义的事件,不用百度,在本页面查找就有:
    public event PageChangeEventHandler ChangePageClick; 前台
    <cc1:ServerControl1 ID="ServerControl11" runat="server" OnChangePageClick="ServerControl11_ChangePageClick"/>后台protected void ServerControl11_ChangePageClick(object sender, EventArgs e)
    {
    Response.Write(this.ServerControl11.CurrentPage);
    }