2009-07-11 Michael Barker <mike@middlesoft.co.uk>
[mono.git] / mcs / class / System.Web.DynamicData / Test / WebPages / DynamicData / Content / GridViewPager.ascx.cs
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
16 public partial class GridViewPager : System.Web.UI.UserControl {
17     private GridView _gridView;
18
19     protected void Page_Load(object sender, EventArgs e) {
20         Control c = Parent;
21         while (c != null) {
22             if (c is GridView) {
23                 _gridView = (GridView)c;
24                 break;
25             }
26             c = c.Parent;
27         }
28     }
29
30     protected void TextBoxPage_TextChanged(object sender, EventArgs e) {
31         if (_gridView == null) {
32             return;
33         }
34         int page;
35         if (int.TryParse(TextBoxPage.Text.Trim(), out page)) {
36             if (page <= 0) {
37                 page = 1;
38             }
39             if (page > _gridView.PageCount) {
40                 page = _gridView.PageCount;
41             }
42             _gridView.PageIndex = page - 1;
43         }
44         TextBoxPage.Text = (_gridView.PageIndex + 1).ToString();
45     }
46
47     protected void DropDownListPageSize_SelectedIndexChanged(object sender, EventArgs e) {
48         if (_gridView == null) {
49             return;
50         }
51         DropDownList dropdownlistpagersize = (DropDownList)sender;
52         _gridView.PageSize = Convert.ToInt32(dropdownlistpagersize.SelectedValue);
53         int pageindex = _gridView.PageIndex;
54         _gridView.DataBind();
55         if (_gridView.PageIndex != pageindex) {
56             //if page index changed it means the previous page was not valid and was adjusted. Rebind to fill control with adjusted page
57             _gridView.DataBind();
58         }
59     }
60
61     protected void Page_PreRender(object sender, EventArgs e) {
62         if (_gridView != null) {
63             LabelNumberOfPages.Text = _gridView.PageCount.ToString();
64             TextBoxPage.Text = (_gridView.PageIndex + 1).ToString();
65             DropDownListPageSize.SelectedValue = _gridView.PageSize.ToString();
66         }
67     }
68 }