Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Книги по теме

Искать:
в:
Порядок:

Исходник

Автор:

C...R...a...S...H

 
Название:

Хранитель состояния 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
 
Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта