GridViewPager.ascx.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Collections.Specialized;
  6. using System.Linq;
  7. using System.Web;
  8. using System.Web.Security;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.WebControls.WebParts;
  12. using System.Web.UI.HtmlControls;
  13. using System.Xml.Linq;
  14. using System.Web.DynamicData;
  15. public partial class GridViewPager : System.Web.UI.UserControl {
  16. private GridView _gridView;
  17. protected void Page_Load(object sender, EventArgs e) {
  18. Control c = Parent;
  19. while (c != null) {
  20. if (c is GridView) {
  21. _gridView = (GridView)c;
  22. break;
  23. }
  24. c = c.Parent;
  25. }
  26. }
  27. protected void TextBoxPage_TextChanged(object sender, EventArgs e) {
  28. if (_gridView == null) {
  29. return;
  30. }
  31. int page;
  32. if (int.TryParse(TextBoxPage.Text.Trim(), out page)) {
  33. if (page <= 0) {
  34. page = 1;
  35. }
  36. if (page > _gridView.PageCount) {
  37. page = _gridView.PageCount;
  38. }
  39. _gridView.PageIndex = page - 1;
  40. }
  41. TextBoxPage.Text = (_gridView.PageIndex + 1).ToString();
  42. }
  43. protected void DropDownListPageSize_SelectedIndexChanged(object sender, EventArgs e) {
  44. if (_gridView == null) {
  45. return;
  46. }
  47. DropDownList dropdownlistpagersize = (DropDownList)sender;
  48. _gridView.PageSize = Convert.ToInt32(dropdownlistpagersize.SelectedValue);
  49. int pageindex = _gridView.PageIndex;
  50. _gridView.DataBind();
  51. if (_gridView.PageIndex != pageindex) {
  52. //if page index changed it means the previous page was not valid and was adjusted. Rebind to fill control with adjusted page
  53. _gridView.DataBind();
  54. }
  55. }
  56. protected void Page_PreRender(object sender, EventArgs e) {
  57. if (_gridView != null) {
  58. LabelNumberOfPages.Text = _gridView.PageCount.ToString();
  59. TextBoxPage.Text = (_gridView.PageIndex + 1).ToString();
  60. DropDownListPageSize.SelectedValue = _gridView.PageSize.ToString();
  61. }
  62. }
  63. }