Wednesday, February 16, 2011

Complete Code for Using DataPager On CS File in UserControl. This User Control will as a Part of Paging Can use in Any Page

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Com.Jsimple.Hrms.WorkFlowTemplate.JDataPager
{
public partial class JDataPager : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HtmlLink lnk = new HtmlLink();
lnk.Attributes.Add("href", "/JDataPager/Style/pager.css");
lnk.Attributes.Add("rel", "stylesheet");
lnk.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(lnk);
if (lvPageData.HasControls())
{
DropDownList dd = (DropDownList)lvPageData.Controls[0].FindControl("DDPageSize");
dd.SelectedIndex = dd.Items.IndexOf(dd.Items.FindByValue(Convert.ToString(lvPageData.PageSize)));
}
}
}

public string ListViewId
{
get { return lvPageData.PagedControlID; }
set { lvPageData.PagedControlID = value; }
}

protected void PagerCommand(object sender, DataPagerCommandEventArgs e)
{
DataPager pager = lvPageData;
int newSartRowIndex;
switch (e.CommandName)
{
case "Next":
newSartRowIndex = (pager.StartRowIndex + pager.MaximumRows) >= pager.TotalRowCount ? pager.StartRowIndex : pager.StartRowIndex + pager.MaximumRows;
break;
case "Previous":
newSartRowIndex = pager.StartRowIndex - pager.MaximumRows < 0 ? pager.StartRowIndex : pager.StartRowIndex - pager.MaximumRows; break; case "Last": newSartRowIndex = (((pager.TotalRowCount / pager.MaximumRows) * pager.MaximumRows)); break; case "GoTo": if (ViewState["pageId"] != null && Convert.ToString(ViewState["pageId"]) != "" && (Convert.ToDouble(ViewState["pageId"]) <= Math.Ceiling((double)lvPageData.TotalRowCount / lvPageData.MaximumRows))) { newSartRowIndex = (Convert.ToInt32(ViewState["pageId"]) - 1) * pager.MaximumRows; } else newSartRowIndex = e.NewStartRowIndex; break; case "First": default: newSartRowIndex = 0; break; } e.NewMaximumRows = pager.MaximumRows; e.NewStartRowIndex = newSartRowIndex; } protected void CurrentPageChanged(object sender, EventArgs e) { TextBox txtCurrentPage = sender as TextBox; DataPager pager = lvPageData; int startRowIndex = (int.Parse(txtCurrentPage.Text) - 1) * pager.MaximumRows; pager.SetPageProperties(startRowIndex, pager.MaximumRows, true); } protected void txtPageChange_TextChanged(object sender, EventArgs e) { CommandEventArgs ce = new CommandEventArgs("GoTo", ""); ViewState["pageId"] = ((TextBox)sender).Text.Trim(); TemplatePagerField pagerTemplateField = this.lvPageData.Fields[0] as TemplatePagerField; if (pagerTemplateField != null) { pagerTemplateField.HandleEvent(ce); } } protected void DDGoTo_SelectedIndexChanged(object sender, EventArgs e) { CommandEventArgs ce = new CommandEventArgs("GoTo", ""); ViewState["pageId"] = ((DropDownList)sender).SelectedValue; ((DropDownList)sender).SelectedIndex = ((DropDownList)sender).Items.IndexOf(((DropDownList)sender).Items.FindByValue(Convert.ToString(ViewState["pageId"]))); TemplatePagerField pagerTemplateField = this.lvPageData.Fields[0] as TemplatePagerField; if (pagerTemplateField != null) { pagerTemplateField.HandleEvent(ce); } } protected void DDPageSize_SelectedIndexChanged(object sender, EventArgs e) { int size = Convert.ToInt32(((DropDownList)sender).SelectedValue); if (size > 0)
{
lvPageData.PageSize = size;
DropDownList ddPage = (DropDownList)lvPageData.Controls[0].FindControl("DDPageSize");
if (ddPage != null)
{
ListItem ls = ddPage.Items.FindByValue(Convert.ToString(lvPageData.PageSize));
if (ls != null)
ddPage.SelectedIndex = ddPage.Items.IndexOf(ls);
}
}
}

///
/// Set Page Index Dropdown, Call Every time when ListView Bind.
///

public void bindGotoDD()
{
double count = Math.Ceiling((double)lvPageData.TotalRowCount / lvPageData.MaximumRows);
DropDownList dd = (DropDownList)lvPageData.Controls[0].FindControl("DDGoTo");
if (dd != null)
{
dd.Items.Clear();
for (int i = 1; i <= count; i++) { ListItem ls = new ListItem(); ls.Text = i.ToString(); ls.Value = i.ToString(); dd.Items.Add(ls); } } RangeValidator rgValidate = (RangeValidator)lvPageData.Controls[0].FindControl("txtPageChangeRangeValidator"); if (rgValidate != null) rgValidate.MaximumValue = count.ToString(); } ///
/// Set current page Index, Call Every time in PagePropertiesChanged after Listview bind.
///

public void setGotoDD()
{
DropDownList dd = (DropDownList)lvPageData.Controls[0].FindControl("DDGoTo");
TextBox txtBox = (TextBox)lvPageData.Controls[0].FindControl("txtPageChange");
if (dd != null)
{
ListItem ls = dd.Items.FindByValue(txtBox.Text.Trim());
if (ls != null)
dd.SelectedIndex = dd.Items.IndexOf(ls);
}
}
}
}

No comments:

Post a Comment