/// <summary>
        /// 用户单击页号后,触发的事件,在绑定显示数据的控件之前触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void OnPageChange(object sender, PageArgs e)
        {
            var hd = (EventPageChange)Events[EventChange];

            if (hd != null)
            {
                hd(sender, e);
            }
        }
        /// <summary>
        /// 在提取数据后,绑定数据显示控件之前触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void OnPreGridBind(object sender, PageArgs e)
        {
            var hd = (EventPageChange)Events[EventPreBind];

            if (hd != null)
            {
                hd(sender, e);
            }
        }
        /// <summary>
        /// 绑定控件
        /// </summary>
        public void DataBind(Int32 tmpPageIndex, PageArgs e)
        {
            //查找显示数据的控件

            PageIndex = tmpPageIndex;

            if (tmpPageIndex < 0)
            {
                tmpPageIndex = 0;
            }

            //获取提取记录的SQL
            string sql = PagerSql.GetSQLByPageIndex(tmpPageIndex);
            //this.ManagerPageSQL.GetPageSQL = sql;

            //获取DataTable
            DataTable dt = Dal.ExecuteFillDataTable(sql);

            //调用外部事件
            OnPreGridBind(this, e);

            if (ShowDataControl == null)
            {
                //没有设置控件实例,通过ID查找控件,然后绑定
                string ctrlIDs = ShowDataControlIDs;
                if (ctrlIDs == null) //没有设置显示数据的控件的ID值
                {
                    return;
                }

                //一个分页控件可以绑定多个显示数据的控件
                string[] ctrlID = ctrlIDs.Split(',');
                foreach (string a in ctrlID)
                {
                    DataBind(base.Page.FindControl(a), dt);
                }
            }
            else
            {
                //设置了 显示数据的对象,直接绑定
                DataBind(ShowDataControl, dt);
            }

            //触发(调用)外部的事件
            OnGridBinded(this, e);

            //this.ManagerPageUI.AddPageUI();  //添加页面显示
        }
        /// <summary>
        /// 响应分页事件
        /// </summary>
        private void PagerClick(Int32 tmpPageIndex)
        {
            //判断页号是否超出有效范围
            if (tmpPageIndex < 0)
            {
                tmpPageIndex = 1;
            }

            if (tmpPageIndex > PageCount)
            {
                tmpPageIndex = PageCount;
            }

            //定义一个事件里的参数
            var e = new PageArgs {
                OldPageIndex = PageIndex, CurrentPageIndex = tmpPageIndex
            };

            PageIndex = tmpPageIndex;

            //触发(调用)外部的事件
            OnPageChange(this, e);


            if (PagerRunKind == PagerRunKind.Auto)
            {
                //自动提取数据的方式
                if (tmpPageIndex == 1)
                {
                    //统计总记录数和总页数
                    ComputeRecordCount();
                }

                //绑定控件
                DataBind(tmpPageIndex, e);
            }

            //显示UI
            ManagerPageUI.AddPageUI();
        }
Beispiel #5
0
        private void QuickFirst()
        {
            if (PagerRunKind == PagerRunKind.Auto)
            {
                //定义一个事件里的参数
                var e = new PageArgs();

                switch (PagerTurnKind)
                {
                case PagerTurnKind.PostBack:
                    #region PostBack
                    e.OldPageIndex     = 1;
                    e.CurrentPageIndex = 1;

                    //触发(调用)外部的事件
                    OnPageChange(this, e);

                    //自动提取数据的方式,显示第一页的数据
                    //生成SQL语句和获取记录总数
                    PagerSql.CreateSQL();

                    //统计总记录数和总页数
                    ComputeRecordCount();

                    //绑定第this.PageIndex页的数据
                    DataBind(PageIndex, e);

                    #endregion
                    break;

                case PagerTurnKind.URLRewriter:
                case PagerTurnKind.URL:
                    #region URL
                    //这是为不存储
                    PagerSql.SaveLocation = SaveViewStateLocation.NoSave;

                    if (IsBindControl)
                    {
                        //初始化SQL
                        SetSql();
                        //函数里实现下面几个功能
                        //获取URL 里面的分页参数
                        //生成SQL语句和获取记录总数
                        //统计总记录数和总页数

                        //绑定 数据
                        DataBind(PageIndex, e);
                    }
                    #endregion
                    break;

                case PagerTurnKind.PostBackURL:
                case PagerTurnKind.AjaxForWebControl:
                    #region PostBackURL

                    e.OldPageIndex     = 1;
                    e.CurrentPageIndex = 1;

                    //触发(调用)外部的事件
                    OnPageChange(this, e);

                    //自动提取数据的方式,显示第一页的数据
                    //生成SQL语句和获取记录总数
                    PagerSql.CreateSQL();

                    //统计总记录数和总页数
                    ComputeRecordCount();

                    //绑定第this.PageIndex页的数据
                    DataBind(PageIndex, e);


                    #endregion
                    break;

                    //其他的分页方法暂时不处理
                }

                //判断是否ajax分页
                switch (PagerTurnKind)
                {
                case PagerTurnKind.AjaxForWebControl:
                    //ajax
                    DataControltoHtml();
                    break;
                }
            }

            ManagerPageUI.AddPageUI();  //添加页面显示
        }