class= " lineNumbers "
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=
система " class= " id= " codeSnippet810186 using;
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;
///
/// это изготовленный на заказ управление создаст gridview при плавая коллектор и таможня вызывая только для того чтобы возвратить число рядков в страницу.
///
управления namespace
{
общественный тип ScrollPageGridView: System.Web.UI.WebControls.GridView
{
Свойства #region
приватное Int32 pagesPerGrouping = 10;
общественный шнур PagerBackColor {получите; комплект; }
общественный блок GridHeight {получите; комплект; }
общественный блок GridWidth {получите; комплект; }
публика Int32 TotalRows {получите; комплект; }
публика Int32 PagesPerGrouping
{
получите
{
возвратите pagesPerGrouping;
}
установите
{
Int32 ret = 10;
Int32.TryParse (value.ToString (), вне ret);
pagesPerGrouping = ret;
}
}
#endregion
общественный случай EventHandler GridViewPageChangedCustom;
защищенное свободное пространство OnInit преодоления автоматического действия (EventArgs e)
{
base.OnInit (e);
Th HtmlTableCell = GeneratePaging («th»);
}
#region ScrollPageGridView ()
общественное ScrollPageGridView () {}
#endregion
#region CalculateWidth ()
приватный шнур CalculateWidth ()
{
strWidth шнура = «автомобиль»;
если (! this.GridWidth.IsEmpty)
{
strWidth = String.Format («{0} {1}», this.GridWidth.Value, ((== UnitType.Percentage this.GridWidth.Type)? «%»: «px»));
}
возвращенное strWidth;
}
#endregion
#region CalculateHeight ()
приватный шнур CalculateHeight ()
{
strHeight шнура = «200px»;
если (! this.GridHeight.IsEmpty)
{
strHeight = String.Format («{0} {1}», this.GridHeight.Value, ((== UnitType.Percentage this.GridHeight.Type)? «%»: «px»));
}
возвращенное strHeight;
}
#endregion
#region представляет
защищенное свободное пространство преодоления автоматического действия представляет (сочинитель HtmlTextWriter)
{
// представляет рядок коллектора.
если (this.HeaderRow! = null)
{
customHeader GridViewRow = this.HeaderRow;
сочинитель. Напишите («");
customHeader.ApplyStyle (this.HeaderStyle);
если (== AutoGenerateColumns ложное), то
{
// извлекает существующий клетки от коллектора.
для (int j = customHeader.Cells.Count - 1; >= 0 j; j--)
{
если (это. Колонки [j]. Видимое == ложное)
customHeader.Cells.RemoveAt (j);
}
Int32 iий = 0;
foreach (col DataControlField в этом. Колонки)
{
если (col. Видимое == поистине)
{
customHeader.Cells [I] .ApplyStyle (col.HeaderStyle);
i++;
}
}
}
customHeader.RenderControl (сочинитель);
сочинитель. Напишите (« ");
this.HeaderRow.Visible = ложно;
}
// представляет рядки данных.
Старт // бирка Div для gridview scrolling.
сочинитель. Напишите («id= ");
// получает рядок pager и делает незримым.
customPager GridViewRow = this.BottomPagerRow;
если (this.BottomPagerRow! = null)
{
this.BottomPagerRow.Visible = ложно;
}
основание. Представьте (сочинитель);
сочинитель. Напишите (« ");
// представляет рядок pager.
если (customPager! = null)
{
сочинитель. Напишите («");
customPager.ApplyStyle (this.PagerStyle);
customPager.Visible = true;
customPager.RenderControl (сочинитель);
сочинитель. Напишите (« ");
сочинитель. Напишите («");
сочинитель. Напишите («style= \ «предпосылк-цвет ");
Th HtmlTableCell = GeneratePaging («th»);
th.RenderControl (сочинитель);
сочинитель. Напишите («");
сочинитель. Напишите (« ");
}
}
#endregion
#region GeneratePaging ()
///
/// производит номера страницы на решетке.
///
приватное HtmlTableCell GeneratePaging (шнур TableCellType)
{
попытка
{
Th HtmlTableCell = новое HtmlTableCell (TableCellType);
th. Attributes.Add («объем», «col»);
th. Attributes.Add («тип», «ширина: 400px; текст-выровняйте: лево; ");
//int pagesPerGrouping = PagesPerGrouping;
int fontSize = 10;
totRows int = 0;
numPages int = 1;
gridActSelectedPage int = 1;
curPageGroup int = 1;
startPageForGroup int;
endPageForGroup int;
litSep шнура = « »;
// получает общее количество рядков были возвращены от DB.
totRows = this.TotalRows;
// получает индекс текущей страницы.
если (this.ViewState, то [«gv» + this.ID + «PageIndex»]! = null)
gridActSelectedPage = Convert.ToInt32 (this.ViewState [«gv» + this.ID + «PageIndex»]) + 1; Индекс страницы // фактический, индекс страницы основанным 0;
// освобождает вне все существующий управления.
th. Controls.Clear ();
// основало на числе рядков в DataView и число деталей в страницу в давати в численном выражении решетки, котор число страниц.
numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble) (totRows/Convert.ToDouble (this.PageSize)));
Divide // текущая страница числом страниц в собирать, котор нужно найти вне собрать мы находимся в.
// вычитает 1 от текущей страницы собирая, умножит страницами в собирать и после этого добавляет 1 для того чтобы получить начиная страницу для группы.
curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal) (gridActSelectedPage/Convert.ToDecimal (pagesPerGrouping)));
startPageForGroup = ((curPageGroup - 1) * pagesPerGrouping) + 1;
// получает последнюю страницу в группе страницы.
endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages);
// добавляет кнопки nav страницы когда будут больше страниц после этого может показать на экране.
если (startPageForGroup! = 1)
{
Lnk LinkButton = новое LinkButton ();
lnk.ID = «lbl» + this.ID + «страница» + (startPageForGroup - 1).ToString ();
lnk. Текст = «<<»;
lnk.CommandArgument = (startPageForGroup - 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Щелчок += новое EventHandler (gvPage_Click);
th. Controls.Add (lnk);
// добавляет сепаратор между номерами страницы.
Буквальное litSeparator = новый литерал ();
litSeparator.Text = litSep;
litSeparator.ID = «litSeparatorLT»;
th. Controls.Add (litSeparator);
}
Петля // через активно страницу установила и показывает номера через сноску.
для (int iий = startPageForGroup; endPageForGroup <= iего; i++)
{
// для disable активно страницы соединение.
Lnk LinkButton = новое LinkButton ();
lnk.ID = «lbl» + this.ID + «страница» + i.ToString ();
lnk. Текст = i.ToString ();
lnk.CommandArgument = i.ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
если (gridActSelectedPage == I), то
{
lnk. Позволено = ложно;
}
еще
{
lnk. Щелчок += новое EventHandler (gvPage_Click);
lnk. Командование += новое CommandEventHandler (gvPage_Command);
}
th. Controls.Add (lnk);
// добавляет сепаратор между номерами страницы.
Буквальное litSeparator = новый литерал ();
litSeparator.Text = litSep;
litSeparator.ID = «litSeparator» + i.ToString ();
th. Controls.Add (litSeparator);
}
// если число полных страниц больше, то чем собирать после этого положенный в >> для навигацию.
если (numPages > endPageForGroup), то
{
Lnk LinkButton = новое LinkButton ();
lnk.ID = «lbl» + this.ID + «страница» + (endPageForGroup + 1).ToString ();
lnk. Текст = «>>»;
lnk.CommandArgument = (endPageForGroup + 1).ToString ();
lnk. Font.Size = FontUnit.Point (fontSize);
lnk. Щелчок += новое EventHandler (gvPage_Click);
th. Controls.Add (lnk);
}
возвращенный th;
}
задвижка (исключение)
{
ход;
}
}
#endregion
gvPage_Click #region
приватное пустое gvPage_Click (прислужник предмета, EventArgs e)
{
если (GridViewPageChangedCustom! = null)
{
GridViewPageChangedCustom (это, новое EventArgs ());
}
}
#endregion
}
}
|