using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI;
///
/// diese Zollkontrolle verursacht ein gridview mit einer sich hin- und herbewegenden Überschrift und einer Gewohnheit, die paginieren, um die Zahl Reihen pro Seite nur zurückzubringen.
///
namespace-Kontrollen
{
allgemeine Kategorie ScrollPageGridView: System.Web.UI.WebControls.GridView
{
#region Eigenschaften
privates Int32, das = 10 pagesPerGrouping ist;
allgemeine Schnur PagerBackColor {erhalten; Satz; }
allgemeine Maßeinheit GridHeight {erhalten; Satz; }
allgemeine Maßeinheit GridWidth {erhalten; Satz; }
Öffentlichkeit Int32 TotalRows {erhalten; Satz; }
Öffentlichkeit Int32 PagesPerGrouping
{
erhalten
{
das pagesPerGrouping zurückbringen;
}
einstellen
{
Int32 rösten = 10;
Int32.TryParse (value.ToString (), rösten heraus);
das pagesPerGrouping = rösten;
}
}
#endregion
allgemeines Ereignis EventHandler GridViewPageChangedCustom;
geschützte Übersteuerungslücke OnInit (EventArgs e)
{
base.OnInit (e);
HtmlTableCell Th = GeneratePaging („Th“);
}
#region ScrollPageGridView ()
allgemeines ScrollPageGridView () {}
#endregion
#region CalculateWidth ()
private Schnur CalculateWidth ()
{
Schnur strWidth = „Automobil“;
wenn (! this.GridWidth.IsEmpty)
{
strWidth = String.Format („{0} {1}“, this.GridWidth.Value, ((this.GridWidth.Type == UnitType.Percentage)? „%“: „px“));
}
RückholstrWidth;
}
#endregion
#region CalculateHeight ()
private Schnur CalculateHeight ()
{
Schnur strHeight = „200px“;
wenn (! this.GridHeight.IsEmpty)
{
strHeight = String.Format („{0} {1}“, this.GridHeight.Value, ((this.GridHeight.Type == UnitType.Percentage)? „%“: „px“));
}
RückholstrHeight;
}
#endregion
#region übertragen
geschützte Übersteuerungslücke übertragen (HtmlTextWriter Verfasser)
{
// übertragen Überschriftreihe.
wenn (this.HeaderRow! = Null)
{
GridViewRow customHeader = this.HeaderRow;
Verfasser. Schreiben („");
customHeader.ApplyStyle (this.HeaderStyle);
wenn (AutoGenerateColumns == falsch)
{
// entfernen die vorhandenen Zellen von der Überschrift.
für (int J = customHeader.Cells.Count - 1; J >= 0; J--)
{
wenn (dieses. Spalten [J]. Sichtbares == falsch)
customHeader.Cells.RemoveAt (j);
}
Int32 I = 0;
foreach (DataControlField Spalte diesbezüglich. Spalten)
{
wenn (Spalte. Sichtbares == zutreffend)
{
customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
i++;
}
}
}
customHeader.RenderControl (Verfasser);
Verfasser. Schreiben („ ");
this.HeaderRow.Visible = falsch;
}
// übertragen Datenfolgen.
//-Anfang der Div.-Umbau für das Blättern gridview.
Verfasser. Schreiben („");
// erhalten die Pagerreihe und bilden unsichtbar.
GridViewRow customPager = this.BottomPagerRow;
wenn (this.BottomPagerRow! = Null)
{
this.BottomPagerRow.Visible = falsch;
}
Unterseite. Übertragen (Verfasser);
Verfasser. Schreiben („ ");
// übertragen Pagerreihe.
wenn (customPager! = Null)
{
Verfasser. Schreiben („");
customPager.ApplyStyle (this.PagerStyle);
customPager.Visible = ausrichten en;
customPager.RenderControl (Verfasser);
Verfasser. Schreiben („ ");
Verfasser. Schreiben („");
Verfasser. Schreiben („");
HtmlTableCell Th = GeneratePaging („Th“);
th.RenderControl (Verfasser);
Verfasser. Schreiben („ ");
Verfasser. Schreiben („ ");
}
}
#endregion
#region GeneratePaging ()
///
/// erzeugen die Seitenzahlen auf dem Rasterfeld.
///
privates HtmlTableCell GeneratePaging (Schnur TableCellType)
{
Versuch
{
HtmlTableCell Th = neues HtmlTableCell (TableCellType);
Th. Attributes.Add („Bereich“, „Spalte“);
Th. Attributes.Add („Art“, „Breite: 400px; Text-ausrichten: link; ");
pagesPerGrouping //int = PagesPerGrouping;
int fontSize = 10;
int totRows = 0;
int numPages = 1;
int gridActSelectedPage = 1;
int curPageGroup = 1;
int startPageForGroup;
int endPageForGroup;
Schnur litSep = „ “;
// erhalten die Gesamtzahl Reihen, die vom DB zurückgebracht.
totRows = this.TotalRows;
// erhalten den Strom Seitenindex.
wenn (this.ViewState [„gv“ + this.ID + „Seitenindex“]! = Null)
gridActSelectedPage = Convert.ToInt32 (this.ViewState [„gv“ + this.ID + „Seitenindex“]) + 1; Tatsächliches Seitenindex //, Seitenindex ist 0 gegründet;
// löschen heraus alle vorhandenen Kontrollen.
Th. Controls.Clear ();
// gründete auf der Zahl Reihen im DataView und die Zahl Einzelteilen pro Seite im Rasterfeld herausfinden die Zahl den benötigten Seiten igten.
numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble (totRows)/Convert.ToDouble (this.PageSize)));
//-Verteilung die aktuelle Seite durch die Zahl Seiten pro die Gruppierung zum der heraus zu gruppieren, zu finden sind wir in.
// subtrahieren 1 von der aktuellen gruppierenden Seite, multiplizieren mit den Seiten pro die Gruppierung und addieren dann 1, um die beginnende Seite für die Gruppe zu erhalten.
curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal (gridActSelectedPage)/Convert.ToDecimal (pagesPerGrouping)));
startPageForGroup = ((curPageGroup - 1) * pagesPerGrouping) + 1;
// erhalten die letzte Seite in der Seitengruppe.
endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages);
// addieren Seite nav Knöpfe, wenn es mehr Seiten dann gibt, was auf dem Schirm darstellen kann.
wenn (startPageForGroup! = 1)
{
LinkButton lnk = neues LinkButton ();
lnk.ID = „lbl“ + this.ID + „Seite“ + (startPageForGroup - 1).ToString ();
lnk. Text = „<<“;
lnk.CommandArgument = (startPageForGroup - 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Klicken += neues EventHandler (gvPage_Click);
Th. Controls.Add (lnk);
// hinzufügen einen Separator zwischen Seitenzahlen gen.
Wörtliches litSeparator = neuer Druckfehler ();
litSeparator.Text = litSep;
litSeparator.ID = „litSeparatorLT“;
Th. Controls.Add (litSeparator);
}
//-Schleife durch die aktive Seite einstellte te und anzeigt die Zahlen über dem Seitenende.
für (int I = startPageForGroup; <= I endPageForGroup; i++)
{
// für die Sperrung der aktiven Seite die Verbindung.
LinkButton lnk = neues LinkButton ();
lnk.ID = „lbl“ + this.ID + „Seite“ + i.ToString ();
lnk. Text = i.ToString ();
lnk.CommandArgument = i.ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
wenn (i == gridActSelectedPage)
{
lnk. Ermöglicht = falsch;
}
sonst
{
lnk. Klicken += neues EventHandler (gvPage_Click);
lnk. Befehl += neues CommandEventHandler (gvPage_Command);
}
Th. Controls.Add (lnk);
// hinzufügen einen Separator zwischen Seitenzahlen gen.
Wörtliches litSeparator = neuer Druckfehler ();
litSeparator.Text = litSep;
litSeparator.ID = „litSeparator“ + i.ToString ();
Th. Controls.Add (litSeparator);
}
//, wenn die Zahl Gesamtseiten mehr ist, als die Gruppierung dann gesetzt in >> für Navigation.
wenn (numPages > endPageForGroup)
{
LinkButton lnk = neues LinkButton ();
lnk.ID = „lbl“ + this.ID + „Seite“ + (endPageForGroup + 1).ToString ();
lnk. Text = „>>“;
lnk.CommandArgument = (endPageForGroup + 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Klicken += neues EventHandler (gvPage_Click);
Th. Controls.Add (lnk);
}
Rückholth;
}
Fang (Ausnahme)
{
Wurf;
}
}
#endregion
#region gvPage_Click
privates leeres gvPage_Click (Gegenstandabsender, EventArgs e)
{
wenn (GridViewPageChangedCustom! = Null)
{
GridViewPageChangedCustom (dieses, neues EventArgs ());
}
}
#endregion
}
}
|