class= " lineNumbers " de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
166 :
167 :
168 :
169 :
170 :
171 :
172 :
173 :
174 :
175 :
176 :
177 :
178 :
179 :
180 :
181 :
182 :
183 :
184 :
185 :
186 :
187 :
188 :
189 :
190 :
191 :
192 :
193 :
194 :
195 :
196 :
197 :
198 :
199 :
200 :
201 :
202 :
203 :
204 :
205 :
206 :
207 :
208 :
209 :
210 :
211 :
212 :
213 :
214 :
215 :
216 :
217 :
218 :
219 :
220 :
221 :
222 :
223 :
224 :
225 :
226 :
227 :
228 :
229 :
230 :
231 :
232 :
233 :
234 :
235 :
236 :
237 :
238 :
239 :
240 :
241 :
242 :
243 :
244 :
245 :
246 :
247 :
248 :
249 :
250 :
251 :
252 :
253 :
254 :
255 :
256 :
257 :
258 :
259 :
260 :
261 :
262 :
263 :
264 :
265 :
266 :
267 :
|
class= de
système >using " de l'id= " codeSnippet810186 de de ///
/// cette commande faite sur commande créera un gridview avec un en-tête et une coutume de flottement paginant pour renvoyer seulement le nombre de rangées par la page.
///
commandes de namespace
{
classe publique ScrollPageGridView : System.Web.UI.WebControls.GridView
{
Propriétés de #region
Int32 privé pagesPerGrouping = 10 ;
corde publique PagerBackColor {obtenir ; ensemble ; }
unité publique GridHeight {obtenir ; ensemble ; }
unité publique GridWidth {obtenir ; ensemble ; }
public Int32 TotalRows {obtenir ; ensemble ; }
public Int32 PagesPerGrouping
{
obtenir
{
renvoyer pagesPerGrouping ;
}
placer
{
Int32 rouissent = 10 ;
Int32.TryParse (value.ToString (), rouissent dehors) ;
pagesPerGrouping = rouissent ;
}
}
#endregion
événement public EventHandler GridViewPageChangedCustom ;
vide protégé de priorité OnInit (EventArgs e)
{
base.OnInit (e) ;
Th de HtmlTableCell = GeneratePaging (« Th ») ;
}
#region ScrollPageGridView ()
ScrollPageGridView public () {}
#endregion
#region CalculateWidth ()
corde privée CalculateWidth ()
{
strWidth de corde = « automobile » ;
si (! this.GridWidth.IsEmpty)
{
strWidth = String.Format (« {0} {1} », this.GridWidth.Value, ((== UnitType.Percentage de this.GridWidth.Type) ? « % » : « px »));
}
strWidth de retour ;
}
#endregion
#region CalculateHeight ()
corde privée CalculateHeight ()
{
strHeight de corde = « 200px » ;
si (! this.GridHeight.IsEmpty)
{
strHeight = String.Format (« {0} {1} », this.GridHeight.Value, ((== UnitType.Percentage de this.GridHeight.Type) ? « % » : « px »));
}
strHeight de retour ;
}
#endregion
Le #region rendent
le vide protégé de priorité rendent (l'auteur de HtmlTextWriter)
{
// rendent la rangée d'en-tête.
si (this.HeaderRow ! = nulle)
{
customHeader de GridViewRow = this.HeaderRow ;
auteur. Écrire (« le border= ") ;
customHeader.ApplyStyle (this.HeaderStyle) ;
si (== d'AutoGenerateColumns faux)
{
// enlèvent les cellules existantes de l'en-tête.
pour (international j = customHeader.Cells.Count - 1 ; >= 0 de j ; j--)
{
si (ceci. Colonnes [j]. == évident faux)
customHeader.Cells.RemoveAt (j) ;
}
Int32 i = 0 ;
foreach (colonne de DataControlField en cela. Colonnes)
{
si (colonne. == évident vrai)
{
customHeader.Cells [I] .ApplyStyle (col.HeaderStyle) ;
i++ ;
}
}
}
customHeader.RenderControl (auteur) ;
auteur. Écrire (« ") ;
this.HeaderRow.Visible = faux ;
}
// rendent des rangées de données.
Début de // l'étiquette de division pour le gridview de défilement.
auteur. Écrire (« id= de ") ;
// obtiennent la rangée de bipeur et rendent invisible.
customPager de GridViewRow = this.BottomPagerRow ;
si (this.BottomPagerRow ! = nulle)
{
this.BottomPagerRow.Visible = faux ;
}
base. Rendre (auteur) ;
auteur. Écrire (« ") ;
// rendent la rangée de bipeur.
si (customPager ! = nulle)
{
auteur. Écrire (« cellspacing='" ") ;
customPager.ApplyStyle (this.PagerStyle) ;
customPager.Visible = rectifient ;
customPager.RenderControl (auteur) ;
auteur. Écrire (« ") ;
auteur. Écrire (« le border= ") ;
auteur. Écrire (style= \ « fond-couleur de « ") ;
Th de HtmlTableCell = GeneratePaging (« Th ») ;
th.RenderControl (auteur) ;
auteur. Écrire (« ") ;
auteur. Écrire (« ") ;
}
}
#endregion
#region GeneratePaging ()
de ///
/// produisent des numéros de page sur la grille.
///
HtmlTableCell privé GeneratePaging (corde TableCellType)
{
essai
{
Th de HtmlTableCell = nouveau HtmlTableCell (TableCellType) ;
Th. Attributes.Add (« portée », « colonne ») ;
Th. Attributes.Add (« modèle », « largeur : 400px ; texte-aligner : gauche ; ") ;
//int pagesPerGrouping = PagesPerGrouping ;
l'international fontSize = 10 ;
totRows d'international = 0 ;
numPages d'international = 1 ;
gridActSelectedPage d'international = 1 ;
curPageGroup d'international = 1 ;
startPageForGroup d'international ;
endPageForGroup d'international ;
litSep de corde = «   ; » ;
// obtiennent tout le nombre de rangées qui ont été retournées du DB.
totRows = this.TotalRows ;
// obtiennent le courant d'index de page.
si (this.ViewState [« gv » + this.ID + « d'index de page »] ! = nulle)
gridActSelectedPage = Convert.ToInt32 (this.ViewState [« gv » + this.ID + « d'index de page »]) + 1 ; D'index de page réel de //, d'index de page est 0 basé ;
// dégagent dehors toutes les commandes existantes.
Th. Controls.Clear () ;
// a basé sur le nombre de rangées dans le DataView et le nombre d'articles par la page dans la grille figurent dehors le nombre de pages requises.
numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble) (de totRows/Convert.ToDouble (this.PageSize)));
Clivage de // la page courante par le nombre de pages par groupement pour trouver dehors dans lequel grouper nous sommes.
// soustraient 1 de la page courante groupant, se multiplient par les pages par groupement et puis additionnent 1 pour obtenir la page commençante pour le groupe.
curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal) (de gridActSelectedPage/Convert.ToDecimal (pagesPerGrouping)));
startPageForGroup = ((curPageGroup - 1) * pagesPerGrouping) + 1 ;
// obtiennent la dernière page dans le groupe de page.
endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages ? startPageForGroup + pagesPerGrouping - 1 : numPages) ;
// ajoutent des boutons de nav de page quand il y a plus de pages puis ce qui peut montrer sur l'écran.
si (startPageForGroup ! = 1)
{
Lnk de LinkButton = nouveau LinkButton () ;
lnk.ID = « lbl » + this.ID + « page » + (startPageForGroup - 1).ToString () ;
lnk. Texte = « << » ;
lnk.CommandArgument = (startPageForGroup - 1).ToString () ;
lnk. Font.Size = FontUnit.Point (fontSize) ;
lnk. Clic += nouvel EventHandler (gvPage_Click) ;
Th. Controls.Add (lnk) ;
// ajoutent un séparateur entre les numéros de page.
litSeparator littéral = nouvelle coquille () ;
litSeparator.Text = litSep ;
litSeparator.ID = « litSeparatorLT » ;
Th. Controls.Add (litSeparator) ;
}
La boucle de // par la page active a placé et montre les nombres à travers le titre de bas de page.
pour (international i = startPageForGroup ; endPageForGroup du <= i ; i++)
{
// pour le débronchement de page active le lien.
Lnk de LinkButton = nouveau LinkButton () ;
lnk.ID = « lbl » + this.ID + « page » + i.ToString () ;
lnk. Texte = i.ToString () ;
lnk.CommandArgument = i.ToString () ;
lnk. Font.Size = FontUnit.Point (fontSize) ;
si (gridActSelectedPage de == d'I)
{
lnk. Permis = faux ;
}
autrement
{
lnk. Clic += nouvel EventHandler (gvPage_Click) ;
lnk. Commande += nouveau CommandEventHandler (gvPage_Command) ;
}
Th. Controls.Add (lnk) ;
// ajoutent un séparateur entre les numéros de page.
litSeparator littéral = nouvelle coquille () ;
litSeparator.Text = litSep ;
litSeparator.ID = « litSeparator » + i.ToString () ;
Th. Controls.Add (litSeparator) ;
}
// si le nombre de pages totales est plus que le groupement alors mis dans >> pour la navigation.
si (numPages > endPageForGroup)
{
Lnk de LinkButton = nouveau LinkButton () ;
lnk.ID = « lbl » + this.ID + « page » + (endPageForGroup + 1).ToString () ;
lnk. Texte = « >> » ;
lnk.CommandArgument = (endPageForGroup + 1).ToString () ;
lnk. Font.Size = FontUnit.Point (fontSize) ;
lnk. Clic += nouvel EventHandler (gvPage_Click) ;
Th. Controls.Add (lnk) ;
}
Th de retour ;
}
crochet (exception)
{
jet ;
}
}
#endregion
gvPage_Click de #region
gvPage_Click vide privé (expéditeur d'objet, EventArgs e)
{
si (GridViewPageChangedCustom ! = nulle)
{
GridViewPageChangedCustom (ceci, nouvel EventArgs ());
}
}
#endregion
}
}
|