/// <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(); }
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(); //添加页面显示 }