protected void Page_Load(object sender, EventArgs e)
{
panelPaginator.CssClass = CssClass;
panelPaginator.Attributes.Add("style", style);
string alignStr = "left";
switch (Align)
{
case HorizontalAlign.Center: alignStr = "center"; break;
case HorizontalAlign.Left: alignStr = "left"; break;
case HorizontalAlign.Right: alignStr = "right"; break;
case HorizontalAlign.Justify: alignStr = "center"; break;
case HorizontalAlign.NotSet: alignStr = "left"; break;
}
tdPaginator.Attributes.Add("style", "text-align:" + alignStr);
}
protected void lbNavigator_Click(object sender, EventArgs e)
{
int pageToGo = PageNumber;
try { pageToGo = Int32.Parse((sender as LinkButton).CommandName); }
catch (Exception ex)
{
string command = (sender as LinkButton).CommandName;
if (command.Equals("Previous"))
{
if (PageNumber - 1 == 0)
{
pageToGo = 1;
}
else
{
pageToGo = PageNumber - 1;
}
}
else if (command.Equals("Next"))
{
double tempDouble = TotalItems / ItemPerPage;
int totalNumberPages = Int32.Parse(Math.Ceiling(tempDouble).ToString());
if (PageNumber + 1 == totalNumberPages)
{
pageToGo = PageNumber;
}
else
{
pageToGo = PageNumber + 1;
}
}
}
PageNumber = pageToGo;
Navigate(this, new NavigateEventArgs(PageNumber, ItemPerPage, TotalItems));
PopulateNavigationButtons();
}
protected override void CreateChildControls()
{
base.CreateChildControls();
PopulateNavigationButtons();
}
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
EnsureChildControls();
}
protected void PopulateNavigationButtons()
{
panelPaginatorInner.Controls.Clear();
double tempDouble = TotalItems / ItemPerPage;
int totalNumberPages = Int32.Parse(Math.Ceiling(tempDouble).ToString());
LinkedList<LinkButton> navigators = new LinkedList<LinkButton>();
int maxLength = totalNumberPages < 9 ? totalNumberPages : 9;
int lowNum = PageNumber;
int highNum = PageNumber;
navigators.AddFirst(GetLinkButton(PageNumber.ToString(), PageNumber.ToString(), "PaginatorNavigatorLink ActivePaginatorNavigatorLink"));
while (navigators.Count < maxLength && totalNumberPages > 1)
{
lowNum = lowNum - 1;
highNum = highNum + 1;
if(lowNum > 0){
navigators.AddFirst(GetLinkButton(lowNum.ToString(), lowNum.ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
}
if(highNum <= totalNumberPages){
navigators.AddLast(GetLinkButton(highNum.ToString(), highNum.ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
}
}
if((lowNum - 1) > 3)
{
navigators.AddFirst(GetLinkButton("", "...", "PaginatorDot"));
navigators.AddFirst(GetLinkButton(2.ToString(), 2.ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
navigators.AddFirst(GetLinkButton(1.ToString(), 1.ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
}
if ((totalNumberPages - highNum) > 3)
{
navigators.AddLast(GetLinkButton("", "...", "PaginatorDot"));
navigators.AddLast(GetLinkButton((totalNumberPages - 1).ToString(), (totalNumberPages - 1).ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
navigators.AddLast(GetLinkButton(totalNumberPages.ToString(), totalNumberPages.ToString(), "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
}
navigators.AddFirst(GetLinkButton("Previous", "<< Önceki", "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
navigators.AddLast(GetLinkButton("Next", "Sonraki >>", "PaginatorNavigatorLink InActivePaginatorNavigatorLink"));
foreach (LinkButton l in navigators)
{
panelPaginatorInner.Controls.Add(l);
}
}
private LinkButton GetLinkButton(string commandName, string text, string cssClass)
{
LinkButton lbNavigator = new LinkButton();
lbNavigator.CommandName = commandName.ToString();
lbNavigator.ID = "NavigatorLink" + commandName;
lbNavigator.Text = text.ToString();
if (commandName.Equals("Previous")) { lbNavigator.Attributes.Add("style", "margin:0px 1px 0px 0px;"); }
if (commandName.Equals("Next")) { lbNavigator.Attributes.Add("style", "margin:0px 0px 0px 1px;"); }
lbNavigator.Click += new EventHandler(lbNavigator_Click);
lbNavigator.Attributes.Add("class", cssClass);
return lbNavigator;
}
Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.
When asked, what has been your best career decision?
Deciding to stick with EE.
Being involved with EE helped me to grow personally and professionally.
Connect with Certified Experts to gain insight and support on specific technology challenges including:
We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE