|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Timer |
|
Дата:
|
07 October 2004 |
|
Описание: |
Мне понадобился таймер который делает PostBack форме после окончания времени, мои изыскания вылились в простенький контрольчик.Не претендую на значимость но может кому нить понадобится, а может кто-то не знает как написать контрол который возвращает форму(как я раньше) Таких контролов на форме может быть несколько за счет создания уникальных имен с помощью ClientID |
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=114]Timer[/CODEPOST] |
| Оценка: |
Проголосовало 5 посетителей, средняя оценка 3.20 |
| Оценить: |
|
1 public class TimerControl : Control, IPostBackEventHandler
2 {
3 private int seconds;
4 private string cssClass;
5
6 public event EventHandler TimeOver;
7
8 public TimerControl()
9 {
10 seconds = 0;
11 }
12
13 public string CssClass
14 {
15 set
16 {
17 cssClass = value;
18 }
19 }
20
21 public int Seconds
22 {
23 set
24 {
25 seconds = value;
26 }
27 }
28
29 protected override void OnPreRender(System.EventArgs e)
30 {
31 base.OnPreRender (e);
32 Page.RegisterStartupScript(ClientID + "TimerScript",
33 "<script language=\"javascript\">\n" +
34 "<!--\n" +
35 "var " + ClientID + " = document.getElementById(\'" + ClientID + "\');\n" +
36 "var " + ClientID + "Seconds = " + seconds + ";\n" +
37 "function " + ClientID + "Function()" +
38 "{\n" +
39 " " + ClientID + "Seconds--;\n" +
40 " " + "if(" + ClientID + "Seconds <= 0)\n" +
41 " " + " " + Page.GetPostBackEventReference(this) +";\n" +
42 " " + "else\n" +
43 " " + "{\n" +
44 " " + " " + "var hours = Math.floor(" + ClientID + "Seconds / 3600);\n" +
45 " " + " " + "var minutes = Math.floor((" + ClientID + "Seconds % 3600) / 60);\n" +
46 " " + " " + "var seconds = (" + ClientID + "Seconds % 3600) % 60;\n" +
47 " " + " " + ClientID + ".value = (hours >= 10 ? hours : ('0' + hours)) + ':' + (minutes >= 10 ? minutes : ('0' + minutes)) + ':' + (seconds >= 10 ? seconds : ('0' + seconds));\n" +
48 " " + " " + "window.setTimeout(\'" + ClientID + "Function()\', 1000);\n" +
49 " " + "}\n" +
50 "}\n" +
51 ClientID + "Function()\n" +
52 "//-->\n" +
53 "</script>");
54 }
55
56 protected override void Render(HtmlTextWriter writer)
57 {
58 base.Render (writer);
59 writer.WriteBeginTag("input");
60 writer.WriteAttribute("type", "text");
61 if(cssClass != null)
62 writer.WriteAttribute("class", cssClass);
63 writer.WriteAttribute("name", UniqueID);
64 if(ID != null)
65 writer.WriteAttribute("id", ClientID);
66 writer.Write(" readonly");
67 writer.Write(HtmlTextWriter.TagRightChar);
68 }
69
70 public void RaisePostBackEvent(string eventArgument)
71 {
72 if(TimeOver != null)
73 TimeOver(this, new EventArgs());
74 }
75 } |
| Вернуться к списку исходников в категории Создание элементов управления |
|
|
 |
 |
 |
 |
|
|