class= " lineNumbers " del
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= del
sistema >using notpretty " del class= " del id= " codeSnippet810186 del de ///
/// este control de encargo creará un gridview con un jefe y una aduana flotantes que paginan para volver solamente el número de filas por la página.
///
controles del namespace
{
clase pública ScrollPageGridView: System.Web.UI.WebControls.GridView
{
Características del #region
Int32 privado pagesPerGrouping = 10;
secuencia pública PagerBackColor {conseguir; sistema; }
unidad pública GridHeight {conseguir; sistema; }
unidad pública GridWidth {conseguir; sistema; }
público Int32 TotalRows {conseguir; sistema; }
público Int32 PagesPerGrouping
{
conseguir
{
volver pagesPerGrouping;
}
fijar
{
Int32 enrían = 10;
Int32.TryParse (value.ToString (), hacia fuera enrían);
el pagesPerGrouping = enría;
}
}
#endregion
acontecimiento público EventHandler GridViewPageChangedCustom;
vacío protegido de la invalidación OnInit (EventArgs e)
{
base.OnInit (e);
Th de HtmlTableCell = GeneratePaging (“th”);
}
#region ScrollPageGridView ()
ScrollPageGridView público () {}
#endregion
#region CalculateWidth ()
secuencia privada CalculateWidth ()
{
strWidth de la secuencia = “automóvil”;
¡si (! this.GridWidth.IsEmpty)
{
¿strWidth = String.Format (“{0} {1}”, this.GridWidth.Value, ((== UnitType.Percentage de this.GridWidth.Type)? “%”: “px”));
}
strWidth de vuelta;
}
#endregion
#region CalculateHeight ()
secuencia privada CalculateHeight ()
{
strHeight de la secuencia = “200px”;
¡si (! this.GridHeight.IsEmpty)
{
¿strHeight = String.Format (“{0} {1}”, this.GridHeight.Value, ((== UnitType.Percentage de this.GridHeight.Type)? “%”: “px”));
}
strHeight de vuelta;
}
#endregion
El #region rinde
el vacío protegido de la invalidación rinde (el escritor de HtmlTextWriter)
{
// rinde fila del jefe.
¡si (this.HeaderRow! = falta de información)
{
customHeader de GridViewRow = this.HeaderRow;
escritor. Escribir (el “border= ");
customHeader.ApplyStyle (this.HeaderStyle);
si (== de AutoGenerateColumns falso)
{
// quita las células existentes del jefe.
para (internacional j = customHeader.Cells.Count - 1; >= 0 de j; j--)
{
si (esto. Columnas [j]. == visible falso)
customHeader.Cells.RemoveAt (j);
}
Int32 i = 0;
foreach (columna de DataControlField en esto. Columnas)
{
si (columna. == visible verdad)
{
customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
i++;
}
}
}
customHeader.RenderControl (escritor);
escritor. Escribir (“ ");
this.HeaderRow.Visible = falso;
}
// rinde filas de datos.
Comienzo de // la etiqueta del Div para el gridview del movimiento en sentido vertical.
escritor. Escribir (“id= del ");
// consigue la fila del paginador y la hace invisible.
customPager de GridViewRow = this.BottomPagerRow;
¡si (this.BottomPagerRow! = falta de información)
{
this.BottomPagerRow.Visible = falso;
}
base. Rendir (escritor);
escritor. Escribir (“ ");
// rinde fila del paginador.
¡si (customPager! = falta de información)
{
escritor. Escribir (“cellspacing='" ");
customPager.ApplyStyle (this.PagerStyle);
customPager.Visible = verdad;
customPager.RenderControl (escritor);
escritor. Escribir (“ ");
escritor. Escribir (el “border= ");
escritor. Escribir (style= \ “fondo-color del “");
Th de HtmlTableCell = GeneratePaging (“th”);
th.RenderControl (escritor);
escritor. Escribir (“");
escritor. Escribir (“ ");
}
}
#endregion
#region GeneratePaging ()
de ///
/// genera las páginas en la rejilla.
///
HtmlTableCell privado GeneratePaging (secuencia TableCellType)
{
intento
{
Th de HtmlTableCell = nuevo HtmlTableCell (TableCellType);
th. Attributes.Add (“alcance”, “columna”);
th. Attributes.Add (“estilo”, “anchura: 400px; texto-alinear: izquierdo; ");
//int pagesPerGrouping = PagesPerGrouping;
la internacional fontSize = 10;
totRows de la internacional = 0;
numPages de la internacional = 1;
gridActSelectedPage de la internacional = 1;
curPageGroup de la internacional = 1;
startPageForGroup de la internacional;
endPageForGroup de la internacional;
litSep de la secuencia = “ ”;
// consigue el número de filas total que fueron vueltas del DB.
totRows = this.TotalRows;
// consigue la corriente de índice de páginas.
¡si (this.ViewState [“gv” + this.ID + “de índice de páginas”]! = falta de información)
gridActSelectedPage = Convert.ToInt32 (this.ViewState [“gv” + this.ID + “de índice de páginas”]) + 1; De índice de páginas real de //, de índice de páginas es 0 basado;
// vacia cualquier control existente.
th. Controls.Clear ();
// basó en el número de filas en el DataView y el número de artículos por la página en la rejilla imagina el número de páginas necesarias.
numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble ()/Convert.ToDouble (this.PageSize) de los totRows));
Divisoria de // la página actual por el número de páginas por agrupar a encontrar hacia fuera en el cual el agrupar estamos.
// resta 1 de la página actual que agrupa, se multiplica por las páginas por agrupar y después agrega 1 para conseguir la página que comienza para el grupo.
curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal ()/Convert.ToDecimal (el pagesPerGrouping) del gridActSelectedPage));
startPageForGroup = ((curPageGroup - 1) * pagesPerGrouping) + 1;
// consigue la página pasada en el grupo de la página.
¿endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages);
// agrega los botones del nav de la página cuando hay más páginas entonces qué puede demostrar en la pantalla.
¡si (startPageForGroup! = 1)
{
Lnk de LinkButton = nuevo LinkButton ();
lnk.ID = “lbl” + this.ID + “página” + (startPageForGroup - 1).ToString ();
lnk. Texto = “<<”;
lnk.CommandArgument = (startPageForGroup - 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Tecleo += nuevo EventHandler (gvPage_Click);
th. Controls.Add (lnk);
// agrega un separador entre las páginas.
litSeparator literal = nuevo literal ();
litSeparator.Text = litSep;
litSeparator.ID = “litSeparatorLT”;
th. Controls.Add (litSeparator);
}
El lazo de // a través de la página activa fijó y exhibe los números a través del pie.
para (internacional i = startPageForGroup; endPageForGroup del <= i; i++)
{
// para la neutralización de la página activa el acoplamiento.
Lnk de LinkButton = nuevo LinkButton ();
lnk.ID = “lbl” + this.ID + “página” + i.ToString ();
lnk. Texto = i.ToString ();
lnk.CommandArgument = i.ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
si (gridActSelectedPage del == de i)
{
lnk. Permitido = falso;
}
{
lnk. Tecleo += nuevo EventHandler (gvPage_Click);
lnk. Comando += nuevo CommandEventHandler (gvPage_Command);
}
th. Controls.Add (lnk);
// agrega un separador entre las páginas.
litSeparator literal = nuevo literal ();
litSeparator.Text = litSep;
litSeparator.ID = “litSeparator” + i.ToString ();
th. Controls.Add (litSeparator);
}
// si el número de páginas totales es más que agrupar entonces puesto en >> para la navegación.
si (numPages > endPageForGroup)
{
Lnk de LinkButton = nuevo LinkButton ();
lnk.ID = “lbl” + this.ID + “página” + (endPageForGroup + 1).ToString ();
lnk. Texto = “>>”;
lnk.CommandArgument = (endPageForGroup + 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Tecleo += nuevo EventHandler (gvPage_Click);
th. Controls.Add (lnk);
}
th de vuelta;
}
retén (excepción)
{
tiro;
}
}
#endregion
gvPage_Click del #region
gvPage_Click vacío privado (remitente del objeto, EventArgs e)
{
¡si (GridViewPageChangedCustom! = falta de información)
{
GridViewPageChangedCustom (éste, nuevo EventArgs ());
}
}
#endregion
}
}
|