class= " lineNumbers " do
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= do
sistema >using notpretty " do class= " do id= " codeSnippet810186 do de ///
/// este controle feito sob encomenda criará um gridview com um encabeçamento e um costume de flutuação que paginam para retornar somente o número de fileiras por a página.
///
controles do namespace
{
classe pública ScrollPageGridView: System.Web.UI.WebControls.GridView
{
Propriedades do #region
Int32 confidencial que pagesPerGrouping = 10;
corda pública PagerBackColor {começ; jogo; }
unidade pública GridHeight {começ; jogo; }
unidade pública GridWidth {começ; jogo; }
público Int32 TotalRows {começ; jogo; }
público Int32 PagesPerGrouping
{
começ
{
retornar pagesPerGrouping;
}
ajustar
{
Int32 ret = 10;
Int32.TryParse (value.ToString (), ret para fora);
pagesPerGrouping = ret;
}
}
#endregion
evento público EventHandler GridViewPageChangedCustom;
vácuo protegido OnInit da ultrapassagem (EventArgs e)
{
base.OnInit (e);
Th de HtmlTableCell = GeneratePaging (“th”);
}
#region ScrollPageGridView ()
ScrollPageGridView público () {}
#endregion
#region CalculateWidth ()
corda confidencial CalculateWidth ()
{
strWidth da corda = “automóvel”;
se (! this.GridWidth.IsEmpty)
{
strWidth = String.Format (“{0} {1}”, this.GridWidth.Value, ((== UnitType.Percentage de this.GridWidth.Type)? “%”: “px”));
}
strWidth do retorno;
}
#endregion
#region CalculateHeight ()
corda confidencial CalculateHeight ()
{
strHeight da corda = “200px”;
se (! this.GridHeight.IsEmpty)
{
strHeight = String.Format (“{0} {1}”, this.GridHeight.Value, ((== UnitType.Percentage de this.GridHeight.Type)? “%”: “px”));
}
strHeight do retorno;
}
#endregion
O #region rende
o vácuo protegido da ultrapassagem rende (o escritor de HtmlTextWriter)
{
// rende a fileira do encabeçamento.
se (this.HeaderRow! = zero)
{
customHeader de GridViewRow = this.HeaderRow;
escritor. Escrever (“o border= ");
customHeader.ApplyStyle (this.HeaderStyle);
se (== de AutoGenerateColumns falso)
{
// remove as pilhas existentes do encabeçamento.
para (int j = customHeader.Cells.Count - 1; >= 0 de j; j--)
{
se (isto. Colunas [j]. == visível falso)
customHeader.Cells.RemoveAt (j);
}
Int32 i = 0;
foreach (coluna de DataControlField neste. Colunas)
{
se (coluna. == visível verdadeiro)
{
customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
i++;
}
}
}
customHeader.RenderControl (escritor);
escritor. Escrever (“ ");
this.HeaderRow.Visible = falso;
}
// rende fileiras de dados.
Começo de // o Tag do Div para o gridview do desdobramento.
escritor. Escrever (do “id= ");
// começ a fileira do pager e faz invisível.
customPager de GridViewRow = this.BottomPagerRow;
se (this.BottomPagerRow! = zero)
{
this.BottomPagerRow.Visible = falso;
}
base. Render (escritor);
escritor. Escrever (“ ");
// rende a fileira do pager.
se (customPager! = zero)
{
escritor. Escrever (“cellspacing='" ");
customPager.ApplyStyle (this.PagerStyle);
customPager.Visible = retificam;
customPager.RenderControl (escritor);
escritor. Escrever (“ ");
escritor. Escrever (“o border= ");
escritor. Escrever (do “style= \ “fundo-cor ");
Th de HtmlTableCell = GeneratePaging (“th”);
th.RenderControl (escritor);
escritor. Escrever (“");
escritor. Escrever (“ ");
}
}
#endregion
#region GeneratePaging ()
de ///
/// gera os números de página na grade.
///
HtmlTableCell confidencial GeneratePaging (corda TableCellType)
{
tentativa
{
Th de HtmlTableCell = HtmlTableCell novo (TableCellType);
th. Attributes.Add (“espaço”, “coluna”);
th. Attributes.Add (“estilo”, “largura: 400px; texto-alinhar: esquerdo; ");
//int que pagesPerGrouping = PagesPerGrouping;
o int fontSize = 10;
totRows do int = 0;
numPages do int = 1;
gridActSelectedPage do int = 1;
curPageGroup do int = 1;
startPageForGroup do int;
endPageForGroup do int;
litSep da corda = “ ”;
// começ o número de fileiras total que foram retornadas do DB.
totRows = this.TotalRows;
// começ o índice de página atual.
se (this.ViewState [“gv” + this.ID + “PageIndex”]! = zero)
gridActSelectedPage = Convert.ToInt32 (this.ViewState [“gv” + this.ID + “PageIndex”]) + 1; O índice de página real de //, índice de página é 0 baseado;
// cancela para fora todos os controles existentes.
th. Controls.Clear ();
// baseou no número de fileiras no DataView e o número de artigos por a página na grade figura para fora o número de páginas necessários.
numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble) (dos totRows/Convert.ToDouble (this.PageSize)));
Partilha de // a página atual pelo número de páginas por o agrupamento para encontrar para fora em que agrupar nós estamos.
// subtrai 1 da página atual que agrupa, multiplica-o pelas páginas por o agrupamento e adiciona-o então 1 para começ a página começando para o grupo.
curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal) (do gridActSelectedPage/Convert.ToDecimal (pagesPerGrouping)));
startPageForGroup = ((curPageGroup - 1) * que pagesPerGrouping) + 1;
// começ a última página no grupo da página.
endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages);
// adiciona teclas do nav da página quando há mais páginas então o que pode mostrar na tela.
se (startPageForGroup! = 1)
{
Lnk de LinkButton = LinkButton novo ();
lnk.ID = “lbl” + this.ID + “página” + (startPageForGroup - 1) .ToString ();
lnk. Texto = “<<”;
lnk.CommandArgument = (startPageForGroup - 1) .ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Clique += EventHandler novo (gvPage_Click);
th. Controls.Add (lnk);
// adiciona um separador entre números de página.
litSeparator literal = Literal novo ();
litSeparator.Text = litSep;
litSeparator.ID = “litSeparatorLT”;
th. Controls.Add (litSeparator);
}
O laço de // através da página ativa ajustou e indicou os números através do pé de página.
para (int i = startPageForGroup; endPageForGroup do <= i; i++)
{
// para a inutilização da página ativa a ligação.
Lnk de LinkButton = LinkButton novo ();
lnk.ID = “lbl” + this.ID + “página” + i.ToString ();
lnk. Texto = i.ToString ();
lnk.CommandArgument = i.ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
se (gridActSelectedPage do == de i)
{
lnk. Permitido = falso;
}
mais
{
lnk. Clique += EventHandler novo (gvPage_Click);
lnk. Comando += CommandEventHandler novo (gvPage_Command);
}
th. Controls.Add (lnk);
// adiciona um separador entre números de página.
litSeparator literal = Literal novo ();
litSeparator.Text = litSep;
litSeparator.ID = “litSeparator” + i.ToString ();
th. Controls.Add (litSeparator);
}
// se o número de páginas totais é mais do que o agrupamento põr então >> para na navegação.
se (numPages > endPageForGroup)
{
Lnk de LinkButton = LinkButton novo ();
lnk.ID = “lbl” + this.ID + “página” + (endPageForGroup + 1) .ToString ();
lnk. Texto = “>>”;
lnk.CommandArgument = (endPageForGroup + 1) .ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Clique += EventHandler novo (gvPage_Click);
th. Controls.Add (lnk);
}
th do retorno;
}
prendedor (exceção)
{
lance;
}
}
#endregion
gvPage_Click do #region
gvPage_Click vago confidencial (remetente do objeto, EventArgs e)
{
se (GridViewPageChangedCustom! = zero)
{
GridViewPageChangedCustom (este, EventArgs novo ());
}
}
#endregion
}
}
|