/// <summary> /// 当触发分页控件事件时执行的过程 /// </summary> /// <param name="ty"></param> /// <param name="cmdArgs"></param> private void DoPageChanged(PageChangedType ty, string cmdArgs) { int currentPageIdx = CurrentPageIndex; int pageCnt = PageCount; int NewPageIndex = CurrentPageIndex; //设置新页索引 switch (ty) { case PageChangedType.atFirst: //如果触发首页按钮事件 NewPageIndex = 1; //新页索引设为1 break; case PageChangedType.atPrior: //如果触发上页按钮事件 if (currentPageIdx > 1) { NewPageIndex = CurrentPageIndex - 1; //新页索引设为当前页索引减1 } break; case PageChangedType.atNext: //如果触发下页按钮事件 if (currentPageIdx < pageCnt) { NewPageIndex = CurrentPageIndex + 1; //新页索引设为当前页索引加1 } break; case PageChangedType.atLast: //如果触发末页按钮事件 NewPageIndex = pageCnt; break; case PageChangedType.atGo: //如果触发页导航按钮事件 int idx = currentPageIdx; if (int.TryParse(_txtToPage.Text, out idx)) { if (idx >= 1 && idx <= pageCnt) { NewPageIndex = idx; //新页索引等于导航输入框数字 } } break; case PageChangedType.atNumeric: //如果触发页码按钮事件 if (cmdArgs == "back") //如果触发向后翻页码按钮事件 { if (NumericPageIndex > 1) { NumericPageIndex--; //页码按钮页索引减1 //根据页码按钮索引设置页索引 NewPageIndex = NumericPageIndex * NumericButtonCount; } } else if (cmdArgs == "front") //如果触发向前翻页码按钮事件 { if (NumericPageIndex < NumericPageCount) { NumericPageIndex++; //页码按钮页索引加1 //根据页码按钮索引设置页索引 NewPageIndex = (NumericPageIndex - 1) * NumericButtonCount + 1; } } else //如果触发页码按钮事件 { int tmpArgs = Convert.ToInt32(cmdArgs); if (tmpArgs >= 1 && tmpArgs <= RecordCount) { NewPageIndex = tmpArgs; //设置页索引为页码按钮参数 } } break; } if (PageChanged != null) //加页改变事件不为空 { PageArgs args = new PageArgs(NewPageIndex); //设置页改变事件参数 PageChanged(this, args); //执行页改变事件代码 } CurrentPageIndex = NewPageIndex; //最终确认当前页索引 CalculateButtonEnable(); //计算按钮只读 CalculateNumericBtnVisible(); //计算页码按钮可见 if (_lblPage != null) { _lblPage.Text = string.Format("第{0}页 / 共{1}页", NewPageIndex, pageCnt); } if (_txtToPage != null) { _txtToPage.Text = NewPageIndex.ToString(); } //如果是向前或向后翻页码事件则要重新创建子控件 if (ty == PageChangedType.atNumeric && (cmdArgs == "back" || cmdArgs == "front")) { RecreateChildControls(); } }
/// <summary> /// 当触发分页控件事件时执行的过程 /// </summary> /// <param name="ty"></param> /// <param name="cmdArgs"></param> private void DoPageChanged(PageChangedType ty, string cmdArgs) { int currentPageIdx = CurrentPageIndex; int pageCnt = PageCount; int NewPageIndex = CurrentPageIndex; //设置新页索引 switch (ty) { case PageChangedType.atFirst: //如果触发首页按钮事件 NewPageIndex = 1; //新页索引设为1 break; case PageChangedType.atPrior: //如果触发上页按钮事件 if (currentPageIdx > 1) { NewPageIndex = CurrentPageIndex - 1; //新页索引设为当前页索引减1 } break; case PageChangedType.atNext: //如果触发下页按钮事件 if (currentPageIdx < pageCnt) { NewPageIndex = CurrentPageIndex + 1; //新页索引设为当前页索引加1 } break; case PageChangedType.atLast: //如果触发末页按钮事件 NewPageIndex = pageCnt; break; case PageChangedType.atGo: //如果触发页导航按钮事件 int idx = currentPageIdx; if (int.TryParse(_txtToPage.Text, out idx)) { if (idx >= 1 && idx <= pageCnt) { NewPageIndex = idx; //新页索引等于导航输入框数字 } } break; case PageChangedType.atNumeric: //如果触发页码按钮事件 if (cmdArgs == "back") //如果触发向后翻页码按钮事件 { if (NumericPageIndex > 1) { NumericPageIndex--; //页码按钮页索引减1 //根据页码按钮索引设置页索引 NewPageIndex = NumericPageIndex * NumericButtonCount; } } else if (cmdArgs == "front") //如果触发向前翻页码按钮事件 { if (NumericPageIndex < NumericPageCount) { NumericPageIndex++; //页码按钮页索引加1 //根据页码按钮索引设置页索引 NewPageIndex = (NumericPageIndex - 1) * NumericButtonCount + 1; } } else //如果触发页码按钮事件 { int tmpArgs = Convert.ToInt32(cmdArgs); if (tmpArgs >= 1 && tmpArgs <= RecordCount) { NewPageIndex = tmpArgs; //设置页索引为页码按钮参数 } } break; } if (PageChanged != null) //加页改变事件不为空 { PageArgs args = new PageArgs(NewPageIndex); //设置页改变事件参数 PageChanged(this, args); //执行页改变事件代码 } CurrentPageIndex = NewPageIndex; //最终确认当前页索引 CalculateButtonEnable(); //计算按钮只读 CalculateNumericBtnVisible(); //计算页码按钮可见 if (_lblPage != null) _lblPage.Text = string.Format("第{0}页 / 共{1}页", NewPageIndex, pageCnt); if (_txtToPage != null) _txtToPage.Text = NewPageIndex.ToString(); //如果是向前或向后翻页码事件则要重新创建子控件 if (ty == PageChangedType.atNumeric && (cmdArgs == "back" || cmdArgs == "front")) { RecreateChildControls(); } }