|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Хранитель состояния Scroll'ов на странице |
|
Дата:
|
09 June 2006 |
|
Описание: |
Серверный контрол который позволяет сохранять состояние Scroll'ов для всех элементов на странице, и восстанавливать их после PostBack!
Все тестилось мною в: IE6, FireFox1.5, Opera9
Есть у этого контрола одно ограничение: Все элементы которые содержат Scroll должны иметь уникальный ID, что бы можно было их отличать друг от друга. |
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=192]Хранитель состояния Scroll'ов на странице[/CODEPOST] |
| Оценка: |
Проголосовало 1 посетителей, средняя оценка 5.00 |
| Оценить: |
|
1 using System;
2 using System.ComponentModel;
3 using System.Globalization;
4 using System.IO;
5 using System.Text;
6 using System.Threading;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10
11 namespace xSaveScroll
12 {
13 [ToolboxData("<{0}:xSaveScroll runat=server></{0}:xSaveScroll>"),Description("Контрол который сохраняет позиции всех скролов находящихся на странице")]
14 public class xSaveScroll: HiddenField
15 {
16 protected override void Render(System.Web.UI.HtmlTextWriter writer)
17 {
18 RegisterScript();
19 base.Render(writer);
20 Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll2", "LoadState();", true);
21 Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll3", "document.getElementById('" + Page.Form.ClientID + "').onsubmit=function(){SaveState();};", true);
22 }
23 private void RegisterScript()
24 {
25 string Script;
26 Script = "function SaveState(){";
27 Script += "var Ctrls=document.getElementsByTagName('*');";
28 Script += "x=Ctrls.length;";
29 Script += "var i;";
30 Script += "for(i=0;i<x;i++){";
31 Script += "if (Ctrls[i].scrollTop!=null && Ctrls[i].scrollLeft!=null){";
32 Script += "if (Ctrls[i].scrollTop!=0 || Ctrls[i].scrollLeft!=0)";
33 Script += "document.getElementById ('" + this.ClientID + "').value+=Ctrls[i].id+','+Ctrls[i].scrollTop+','+Ctrls[i].scrollLeft+';';}}}";
34 string Script2;
35 Script2 = "function LoadState() {";
36 Script += "var Ctrls=document.getElementsByTagName('*');";
37 Script2 += "x=Ctrls.length;";
38 Script2 += "mass=document.getElementById ('" + this.ClientID + "').value.split(';');";
39 Script2 += "var i;var j;for(i=0;i<mass.length-1;i++) {";
40 Script2 += "m2=mass[i].split(',');if (m2.length==3){for(j=0;j<x;j++){";
41 Script2 += "if (m2[0]==Ctrls[j].id)";
42 Script2 += "{Ctrls[j].scrollTop=m2[1];";
43 Script2 += "Ctrls[j].scrollLeft=m2[2];";
44 Script2 += "}}}}}";
45 Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll", Script + Script2, true);
46 }
47 }
48 }
49 |
| Вернуться к списку исходников в категории Общие вопросы программирования на ASP.NET |
|
|
 |
 |
 |
 |
|
|