- testapp.zip
- TestApp
- TestApp.sln
- TestApp
- bin
- ar
- AjaxControlToolkit.resources.dll
- de
- AjaxControlToolkit.resources.dll
- es
- AjaxControlToolkit.resources.dll
- fr
- AjaxControlToolkit.resources.dll
- he
- AjaxControlToolkit.resources.dll
- hi
- AjaxControlToolkit.resources.dll
- it
- AjaxControlToolkit.resources.dll
- ja
- AjaxControlToolkit.resources.dll
- ko
- AjaxControlToolkit.resources.dll
- MrllControlLib.dll
- pt
- AjaxControlToolkit.resources.dll
- ru
- AjaxControlToolkit.resources.dll
- TestApp.dll
- zh-CHS
- AjaxControlToolkit.resources.dll
- zh-CHT
- AjaxControlToolkit.resources.dll
- Properties
- TestApp.csproj
- TestApp.csproj.user
- Web.config
- WebForm1.aspx
- WebForm1.aspx.cs
- WebForm1.aspx.designer.cs
- mrllcontrollib.zip
- MrllControlLib
|
using System;
using System.Data;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
namespace MrllControlLib
{
[ToolboxData("<{0}:MrllPager runat=server></{0}:MrllPager>")]
public class MrllPager : GridView
{
private ShowMrllPager _ShowMrllCustomPaging ;
private DropDownList ddlPager = new DropDownList();
private DropDownList ddlSort = new DropDownList();
private DropDownList ddlNumberOfPages = new DropDownList();
private LinkButton lnkPrev =new LinkButton();
private LinkButton lnkNext = new LinkButton();
private string _CustomPagerCssClass =string.Empty;
private string _DefaultSortExpression = string.Empty;
private DropDownList ddlFooterPager = new DropDownList();
private LinkButton lnkFooterPrev = new LinkButton();
private LinkButton lnkFooterNext = new LinkButton();
private Label lblStatus = new Label();
private Label lbkFooterStatus = new Label();
public delegate void PageSizeChangeHandler(object s, PageSizeChangeEventArgs e);
public event PageSizeChangeHandler OnPageSizeChanged ;
public ShowMrllPager ShowMrllCustomPaging
{
get { return _ShowMrllCustomPaging; }
set { _ShowMrllCustomPaging = value; }
}
public string DefaultSortExpression
{
get { return _DefaultSortExpression; }
}
public string CustomPagerCssClass
{
get { return _CustomPagerCssClass; }
set { _CustomPagerCssClass = value; }
}
protected override void OnInit(EventArgs e)
{
if (ShowMrllCustomPaging == ShowMrllPager.OnTopAndBottom)
base.ShowFooter = true;
if (ShowMrllCustomPaging != ShowMrllPager.None)
{
base.PagerSettings.Position = PagerPosition.Top;
base.AllowPaging = true;
}
ddlNumberOfPages.AutoPostBack = true;
ddlPager.AutoPostBack = true;
ddlFooterPager.AutoPostBack = true;
ddlSort.AutoPostBack = true;
ddlPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
ddlFooterPager.SelectedIndexChanged += new EventHandler(ddlFooterPager_SelectedIndexChanged);
ddlSort.SelectedIndexChanged += new EventHandler(ddlSort_SelectedIndexChanged);
ddlNumberOfPages.SelectedIndexChanged +=new EventHandler(ddlNumberOfPages_SelectedIndexChanged);
lnkNext.Click += new EventHandler(lnkNext_Click);
lnkPrev.Click += new EventHandler(lnkPrev_Click);
lnkFooterNext.Click += new EventHandler(lnkNext_Click);
lnkFooterPrev.Click += new EventHandler(lnkPrev_Click);
for (int i = 10; i <= 100; i += 10)
ddlNumberOfPages.Items.Add(i.ToString());
PageSize=Convert.ToInt32( ddlNumberOfPages.SelectedItem.Value);
ddlSort.ID = "ddlSort";
if (ddlSort.Items.Count == 0 && this.AllowSorting)
{
//ddlSort.Items.Add("Select");
for (int i = 0; i < base.Columns.Count; i++)
if (base.Columns[i].SortExpression != string.Empty && ddlSort.Items.FindByValue(base.Columns[i].SortExpression) == null)
ddlSort.Items.Add(base.Columns[i].SortExpression);
}
if (ddlSort.Items.Count > 0)
_DefaultSortExpression = ddlSort.Items[0].Text;
base.OnInit(e);
}
protected override void OnRowCreated(GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
if (PageCount ==1)
{
this.ShowFooter = false;
int iColSpan =e.Row.Cells.Count;
Table oTab = new Table();
//oTab.BorderWidth = Unit.Pixel(1);
oTab.Width = Unit.Percentage(100);
TableRow oRow = new TableRow();
oTab.Rows.Add(oRow);
TableCell oCell = new TableCell();
oRow.Cells.Add(oCell);
oCell.ColumnSpan = e.Row.Cells.Count;
//Add Lable PageSize and Sort Here..
Table oInnerTable = new Table();
oInnerTable.Rows.Add(new TableRow());
TableCell oCellInner = new TableCell();
#region "Lable "
//Lable...............
int iTotalRec = 0;
int iUpto = 0;
int iStart = PageIndex * PageSize + 1;
if (base.DataSource is IListSource)
{
IListSource itotal = (IListSource)base.DataSource;
iTotalRec = itotal.GetList().Count;
}
else if (base.DataSource is ICollection)
{
ICollection itotal = (ICollection)base.DataSource;
iTotalRec = itotal.Count;
}
if ((PageIndex + 1) == PageCount)
iUpto = iTotalRec;
else
iUpto = iStart + PageSize - 1;
lblStatus.Text = string.Format("Showing {0}-{1} of {2}", iStart, iUpto, iTotalRec);
oCellInner.HorizontalAlign = HorizontalAlign.Left;
oCellInner.Controls.Add(lblStatus);
oCellInner.Width = Unit.Percentage(80);
oInnerTable.Rows[0].Cells.Add(oCellInner);
#endregion
oCellInner = new TableCell();
oCellInner.Wrap = false;
oCellInner.Text = "Items Per Page ";
oInnerTable.Rows[0].Cells.Add(oCellInner);
oCellInner = new TableCell();
oCellInner.Controls.Add(ddlNumberOfPages);
oInnerTable.Rows[0].Cells.Add(oCellInner);
if (this.AllowSorting == true)
{
oCellInner = new TableCell();
oCellInner.Wrap = false;
oCellInner.Text = "Sort";
oInnerTable.Rows[0].Cells.Add(oCellInner);
oCell.Controls.Add(oInnerTable);
oCellInner = new TableCell();
oCellInner.Controls.Add(ddlSort);
oInnerTable.Rows[0].Cells.Add(oCellInner);
}
if (this.CustomPagerCssClass != string.Empty)
oInnerTable.CssClass = this.CustomPagerCssClass;
GridViewRow PagerRow = base.CreateRow(-1, -1, DataControlRowType.Pager, DataControlRowState.Normal);
if ( this.CustomPagerCssClass != string.Empty)
PagerRow.CssClass = this.CustomPagerCssClass;
PagerRow.Cells.Add(new TableCell());
PagerRow.Cells[0].Controls.Add(oTab);
PagerRow.Cells[0].ColumnSpan = this.Columns.Count;
Table oNewTab = new Table();
if (this.CustomPagerCssClass != string.Empty)
PagerRow.CssClass = this.CustomPagerCssClass;
oNewTab.Rows.Add(PagerRow);
((Table)this.Controls[0]).GridLines = this.GridLines;
((Table)this.Controls[0]).BorderWidth = this.BorderWidth;
((Table)this.Controls[0]).CellSpacing = this.CellSpacing;
((Table)this.Controls[0]).BorderStyle = this.BorderStyle;
((Table)this.Controls[0]).Width = Unit.Percentage(100);
if (this.HeaderStyle.CssClass != string.Empty)
e.Row.CssClass = this.HeaderStyle.CssClass;
Table grid = (Table)this.Controls[0];
grid.Rows.AddAt(0, PagerRow);
}
else
this.ShowFooter = true;
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
if (PageCount > 1)
{
ddlFooterPager.ID = "ddlFooterPager";
for (int i = 1; i <= PageCount; i++)
if (ddlFooterPager.Items.FindByValue(i.ToString()) == null)
ddlFooterPager.Items.Add(new ListItem(i.ToString()));
e.Row.Cells[0].Controls.Clear();
Table oTab = new Table();
TableRow oRow = new TableRow();
oTab.Rows.Add(oRow);
lnkFooterPrev.Text = "Prev";
if (PageIndex == 0)
lnkFooterPrev.Enabled = false;
else
lnkFooterPrev.Enabled = true;
TableCell oCell = new TableCell();
oCell.Controls.Add(lnkFooterPrev);
oRow.Cells.Add(oCell);
oCell = new TableCell();
oCell.Controls.Add(ddlFooterPager);
oRow.Cells.Add(oCell);
//lnkNext = new LinkButton();
lnkFooterNext.Text = "Next";
if (PageCount == PageIndex + 1)
lnkFooterNext.Enabled = false;
else
lnkFooterNext.Enabled = true;
oCell = new TableCell();
oCell.Controls.Add(lnkFooterNext);
oRow.Cells.Add(oCell);
int colspan = e.Row.Cells.Count;
for (int i = 0; i < colspan-1; i++)
{
e.Row.Cells.RemoveAt(0);
}
e.Row.Cells[0].ColumnSpan = colspan;
Table oOutertab = new Table();
oOutertab.Width = Unit.Percentage(100);
if (CustomPagerCssClass != string.Empty)
{
oTab.CssClass = CustomPagerCssClass;
oOutertab.CssClass = CustomPagerCssClass;
}
TableRow oOuterRow = new TableRow();
oOutertab.Rows.Add(oOuterRow);
//Lable...............
int iTotalRec = 0;
int iUpto = 0;
int iStart = PageIndex * PageSize + 1;
if (base.DataSource is IListSource)
{
IListSource itotal = (IListSource)base.DataSource;
iTotalRec = itotal.GetList().Count;
}
else if (base.DataSource is ICollection)
{
ICollection itotal = (ICollection)base.DataSource;
iTotalRec = itotal.Count;
}
if ((PageIndex + 1) == PageCount)
iUpto = iTotalRec;
else
iUpto = iStart + PageSize - 1;
lbkFooterStatus.Text = string.Format("Showing {0}-{1} of {2}", iStart, iUpto, iTotalRec);
oCell = new TableCell();
oCell.HorizontalAlign = HorizontalAlign.Left;
oCell.Controls.Add(lbkFooterStatus);
oOuterRow.Cells.Add(oCell);
//Lable End
oCell = new TableCell();
oCell.HorizontalAlign = HorizontalAlign.Right;
oCell.Controls.Add(oTab);
oOuterRow.Cells.Add(oCell);
e.Row.Cells[0].Controls.Add(oOutertab);
}
base.TopPagerRow.Visible = true;
}
else if (e.Row.RowType == DataControlRowType.Pager)
{
//DropDownList ddlPager = new DropDownList();
ddlPager.ID = "ddlPager";
for (int i = 1; i <= PageCount; i++)
if (ddlPager.Items.FindByValue(i.ToString()) == null)
ddlPager.Items.Add(new ListItem(i.ToString()));
if (ShowMrllCustomPaging != ShowMrllPager.None)
{
e.Row.Cells[0].Controls.Clear();
Table oTab = new Table();
TableRow oRow = new TableRow();
oTab.Rows.Add(oRow);
TableCell oCell;
if (ddlSort.Items.Count > 1 && this.AllowSorting==true)
{
oCell = new TableCell();
oCell.Text = "Sort";
oRow.Cells.Add(oCell);
oCell = new TableCell();
oCell.Controls.Add(ddlSort);
oRow.Cells.Add(oCell);
}
oCell = new TableCell();
oCell.Text = "Items Per Page";
oRow.Cells.Add(oCell);
oCell = new TableCell();
oCell.Controls.Add(ddlNumberOfPages);
oRow.Cells.Add(oCell);
//lnkPrev = new LinkButton();
lnkPrev.Text = "Prev";
if (PageIndex == 0)
lnkPrev.Enabled = false;
else
lnkPrev.Enabled = true;
oCell = new TableCell();
oCell.Controls.Add(lnkPrev);
oRow.Cells.Add(oCell);
oCell = new TableCell();
oCell.Controls.Add(ddlPager);
oRow.Cells.Add(oCell);
//lnkNext = new LinkButton();
lnkNext.Text = "Next";
lnkNext.CommandName = "page";
lnkNext.CommandArgument = (PageIndex + 1).ToString();
if (PageCount == PageIndex + 1)
lnkNext.Enabled = false;
else
lnkNext.Enabled = true;
oCell = new TableCell();
oCell.Controls.Add(lnkNext);
oRow.Cells.Add(oCell);
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Right;
Table oOutertab = new Table();
oOutertab.Width = Unit.Percentage(100);
if (CustomPagerCssClass != string.Empty)
{
oTab.CssClass = CustomPagerCssClass;
oOutertab.CssClass = CustomPagerCssClass;
}
TableRow oOuterRow = new TableRow();
oOutertab.Rows.Add(oOuterRow);
//Lable
int iTotalRec = 0;
int iUpto = 0;
int iStart = PageIndex * PageSize + 1;
if (base.DataSource is IListSource)
{
IListSource itotal = (IListSource)base.DataSource;
iTotalRec = itotal.GetList().Count;
}
else if (base.DataSource is ICollection)
{
ICollection itotal = (ICollection)base.DataSource;
iTotalRec = itotal.Count;
}
if ((PageIndex + 1) == PageCount)
iUpto = iTotalRec;
else
iUpto = iStart + PageSize - 1;
lblStatus.Text = string.Format("Showing {0}-{1} of {2}", iStart, iUpto, iTotalRec);
oCell = new TableCell();
oCell.HorizontalAlign = HorizontalAlign.Left;
oCell.Controls.Add(lblStatus);
oOuterRow.Cells.Add(oCell);
//Lable End
oCell = new TableCell();
oCell.HorizontalAlign = HorizontalAlign.Right;
oCell.Controls.Add(oTab);
oOuterRow.Cells.Add(oCell);
e.Row.Cells[0].Controls.Add(oOutertab);
}
}
//base.OnRowCreated(e);
}
protected void lnkNext_Click(object sender, System.EventArgs e)
{
//DropDownList ddlPager = (DropDownList)sender;
int PageID = Convert.ToInt32(ddlPager.SelectedItem.Value);
ddlPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlPager.SelectedValue = (PageID + 1).ToString();
ddlPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
if (ShowMrllCustomPaging == ShowMrllPager.OnTopAndBottom)
{
ddlFooterPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlFooterPager.SelectedValue = (PageID + 1).ToString();
ddlFooterPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
}
base.OnPageIndexChanging(new GridViewPageEventArgs(PageIndex+1));
}
protected void lnkPrev_Click(object sender, System.EventArgs e)
{
//DropDownList ddlPager = (DropDownList)sender;
int PageID = Convert.ToInt32(ddlPager.SelectedItem.Value);
ddlPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlPager.SelectedValue = (PageID - 1).ToString();
ddlPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
if (ShowMrllCustomPaging == ShowMrllPager.OnTopAndBottom)
{
ddlFooterPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlFooterPager.SelectedValue = (PageID - 1).ToString();
ddlFooterPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
}
base.OnPageIndexChanging(new GridViewPageEventArgs(PageIndex -1));
}
protected void ddlPager_SelectedIndexChanged(object sender, System.EventArgs e)
{
DropDownList ddlPager = (DropDownList)sender;
int PageID = Convert.ToInt32(ddlPager.SelectedItem.Value);
PageID = PageID - 1;
ddlFooterPager.SelectedIndexChanged -= new EventHandler(ddlFooterPager_SelectedIndexChanged);
ddlFooterPager.SelectedValue = ddlPager.SelectedItem.Value;
ddlFooterPager.SelectedIndexChanged += new EventHandler(ddlFooterPager_SelectedIndexChanged);
base.OnPageIndexChanging(new GridViewPageEventArgs(PageID));
}
protected void ddlFooterPager_SelectedIndexChanged(object sender, System.EventArgs e)
{
DropDownList ddlFooterPager = (DropDownList)sender;
int PageID = Convert.ToInt32(ddlFooterPager.SelectedItem.Value);
PageID = PageID - 1;
ddlPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlPager.SelectedValue = ddlFooterPager.SelectedItem.Value;
ddlPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
base.OnPageIndexChanging(new GridViewPageEventArgs(PageID));
}
protected void ddlSort_SelectedIndexChanged(object sender, System.EventArgs e)
{
DropDownList ddlSort = (DropDownList)sender;
base.OnSorting(new GridViewSortEventArgs(ddlSort.SelectedItem.Value,SortDirection.Ascending));
}
protected void ddlNumberOfPages_SelectedIndexChanged(object sender, System.EventArgs e)
{
int iPageSize = Convert.ToInt32(ddlNumberOfPages.SelectedItem.Value);
//base.PageSize = iPageSize;
PageIndex = 0;
ddlPager.SelectedIndexChanged -= new EventHandler(ddlPager_SelectedIndexChanged);
ddlPager.Items.Clear();
ddlPager.SelectedIndexChanged += new EventHandler(ddlPager_SelectedIndexChanged);
ddlFooterPager.SelectedIndexChanged -= new EventHandler(ddlFooterPager_SelectedIndexChanged);
ddlFooterPager.Items.Clear();
ddlFooterPager.SelectedIndexChanged += new EventHandler(ddlFooterPager_SelectedIndexChanged);
//ddlSort.SelectedIndexChanged -= new EventHandler(ddlSort_SelectedIndexChanged);
//ddlSort.Items.Clear();
//ddlSort.SelectedIndexChanged += new EventHandler(ddlSort_SelectedIndexChanged);
OnPageSizeChanged(this, new PageSizeChangeEventArgs(iPageSize));
}
}
public enum ShowMrllPager
{
None,
OnTop,
OnBotton,
OnTopAndBottom
}
public class PageSizeChangeEventArgs : System.EventArgs
{
public int NewPageSize;
public PageSizeChangeEventArgs(int pNewPageSize)
{
NewPageSize = pNewPageSize;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I have done Master Degree in Computers and MCAD and working on Microsoft technologie since last 4 yrs. Currently working with TCS (India).