System.Web.UI.WebControls.DataGrid.InitializeNumericPager C# (CSharp) Method

InitializeNumericPager() private method

private InitializeNumericPager ( System.Web.UI.WebControls.DataGridItem item, int columnSpan, System.Web.UI.WebControls.PagedDataSource paged ) : System.Web.UI.WebControls.TableCell
item System.Web.UI.WebControls.DataGridItem
columnSpan int
paged System.Web.UI.WebControls.PagedDataSource
return System.Web.UI.WebControls.TableCell
		TableCell InitializeNumericPager (DataGridItem item, int columnSpan,
				PagedDataSource paged)
		{
			TableCell res = new TableCell ();
			res.ColumnSpan = columnSpan;

			int button_count = PagerStyle.PageButtonCount;
			int current = paged.CurrentPageIndex;
			int start = current - (current % button_count);
			int end = start + button_count;

			if (end > paged.PageCount)
				end = paged.PageCount;

			if (start > 0) {
				LinkButton link = new LinkButton ();
				link.Text = "...";
				link.CommandName = PageCommandName;
				link.CommandArgument = start.ToString (Helpers.InvariantCulture);
				link.CausesValidation = false;
				res.Controls.Add (link);
				res.Controls.Add (new LiteralControl (" "));
			}

			for (int i = start; i < end; i++) {
				Control number = null;
				string page = (i + 1).ToString (Helpers.InvariantCulture);
				if (i != paged.CurrentPageIndex) {
					LinkButton link = new LinkButton ();
					link.Text = page;
					link.CommandName = PageCommandName;
					link.CommandArgument = page;
					link.CausesValidation = false;
					number = link;
				} else {
					Label pageLabel = new Label();
					pageLabel.Text = page;
					number = pageLabel;
				}

				res.Controls.Add (number);
				if (i < end - 1)
					res.Controls.Add (new LiteralControl ("&nbsp;"));
			}

			if (end < paged.PageCount) {
				res.Controls.Add (new LiteralControl ("&nbsp;"));
				LinkButton link = new LinkButton ();
				link.Text = "...";
				link.CommandName = PageCommandName;
				link.CommandArgument = (end + 1).ToString (Helpers.InvariantCulture);
				link.CausesValidation = false;
				res.Controls.Add (link);
			}

			return res;
		}