我写个一个自定义的页码显示控件,要求回发方式换页。代码如下:[DefaultProperty("Text")]
    [ToolboxData("<{0}:adminPager runat=server></{0}:adminPager>")]
    public class adminPager : Control, INamingContainer,IPostBackEventHandler
    {
#region Fields
        public int fPageIndex
        {
            get { return dataConvert.cInt(ViewState["fPageIndex"]); }
            set { ViewState["fPageIndex"] = value; }
        }        public int fPageCount
        {
            get { return dataConvert.cInt(ViewState["fPageCount"]); }
            set { ViewState["fPageCount"] = value; }
        }        public int fPageNum
        {
            get
            {
                int i = dataConvert.cInt(ViewState["fPageNum"]);
                if (i == 0) i = 6;
                return i;
            }
            set { ViewState["fPageNum"] = value; }
        }
#endregion        public event PageChangeEventHandler PageChange;
        public delegate void PageChangeEventHandler(object sender, NewPageIndex args);        protected override void CreateChildControls()
        {
            if (fPageCount <= 0) return;
            Panel p = new Panel();
            p.CssClass = "adminPager";            int iUP, iDW;
            iUP = fPageIndex - this.fPageNum / 2;
            if (iUP < 0) iUP = 0;            iDW = iUP + this.fPageNum;
            if (iDW > fPageCount)
            {
                iDW = fPageCount;
                iUP = iDW - fPageNum;
                if (iUP < 0) iUP = 0;
            }            LinkButton l = new LinkButton();
            l.Text = "首页";
            if (fPageIndex == 0) l.Enabled = false;
            l.CommandArgument = "0";
            
            l.Command += new CommandEventHandler(l_Command);
            p.Controls.Add(l);            l = new LinkButton();
            l.Text = "<<";
            if (fPageIndex == 0) l.Enabled = false;
            l.CommandArgument = (fPageIndex - 1).ToString();
            l.Command += new CommandEventHandler(l_Command);
            p.Controls.Add(l);            for (int i = iUP; i < iDW; i++)
            {
                if (i == fPageIndex)
                {
                    Label l1 = new Label();
                    l1.Text = (i + 1).ToString();
                    p.Controls.Add(l1);
                }
                else
                {
                    l = new LinkButton();
                    l.Text = (i + 1).ToString();
                    l.CommandArgument = i.ToString();
                    l.Command += new CommandEventHandler(l_Command);
                    p.Controls.Add(l);
                }
            }            l = new LinkButton();
            l.Text = ">>";
            if (fPageIndex >= fPageCount - 1) l.Enabled = false;
            l.CommandArgument = (fPageIndex + 1).ToString();
            l.Command += new CommandEventHandler(l_Command);
            p.Controls.Add(l);            l = new LinkButton();
            l.Text = "尾页";
            if (fPageIndex >= fPageCount - 1) l.Enabled = false;
            l.CommandArgument = (fPageCount - 1).ToString();
            l.Command += new CommandEventHandler(l_Command);
            p.Controls.Add(l);            this.Controls.Add(p);
        }        void l_Command(object sender, CommandEventArgs e)
        {
            if (PageChange != null)
            {
                PageChange(this, new NewPageIndex(dataConvert.cInt(e.CommandArgument)));
            }
        }        /// <summary>
        /// 新页码信息
        /// </summary>
        public sealed class NewPageIndex : EventArgs
        {
            private int _pageIndex;
            public NewPageIndex(int i)
            {
                _pageIndex = i;
            }            public int newPageIndex
            {
                get { return _pageIndex; }
            }
        }        
    }测试没什么问题,可是放到uploadpanel中,总是自动刷新页面,照例linkbutton已经实现回发了啊,照网上方法怎么改也不行,求高人指点啊,不胜感激~~

解决方案 »

  1.   

    还有uploadpanel是什么东东?搞了这么久的asp.net 没听过。
      

  2.   

    可是放到uploadpanel中,总是自动刷新页面,照例linkbutton已经实现回发了啊
    也没看懂这句话的意思。
      

  3.   

    UpdatePanel??
      

  4.   

    可是放到uploadpanel中,总是自动刷新页面
    -----------这句话你要解释清楚现象啊。你确定你的UpdatePanel没有自己设置自动刷新?
      

  5.   

    这个控件编译后就是一个div  LS的说错了
      

  6.   

    只不过是一个显示分页信息的控件,输入中页数,当前页码,显示页码的数量,然后点击页码实现postback。处理。晚上的控件太垃圾了,都不知道干什么的,都是上千行代码的。另外说明下,问题研究解决,主要是没有为linkbutton分配ID造成的,希望大家不要重蹈我的覆辙