Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / помогите сохранять scroll-ы / 4 сообщений из 4, страница 1 из 1
04.10.2006, 11:24
    #34030905
serg_23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите сохранять scroll-ы
Опускаюсь вниз формы. Произвожу какое-то событие - выделяю строку в Гриде или обновляю, или удаляю и тд, а форма каждый раз при любом событии возвращается вначало (поднимается вверх). Это очень не удобно и некрасиво. У вас на форуме нашёл код сохранения Scroll-ов на странице. Вставил код (как написано) сразу после using-ов. Не заработало, не применилось, всё так же форма возвращается вначало. Подскажите, плз, в каком месте нужно вставить код сохранения скроллов??? привожу код:
....
using System.Web.UI.HtmlControls;

//начало кода хранителя скролов
namespace xSaveScroll
{
[ToolboxData("<{0}:xSaveScroll runat=server></{0}:xSaveScroll>"),Description("Контрол который сохраняет позиции всех скролов находящихся на странице")]
public class xSaveScroll: HiddenField
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
RegisterScript();
base.Render(writer);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll2", "LoadState();", true);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll3", "document.getElementById('" + Page.Form.ClientID + "').onsubmit=function(){SaveState();};", true);
}
private void RegisterScript()
{
string Script;
Script = "function SaveState(){";
Script += "var Ctrls=document.getElementsByTagName('*');";
Script += "x=Ctrls.length;";
Script += "var i;";
Script += "for(i=0;i<x;i++){";
Script += "if (Ctrls[i].scrollTop!=null && Ctrls[i].scrollLeft!=null){";
Script += "if (Ctrls[i].scrollTop!=0 || Ctrls[i].scrollLeft!=0)";
Script += "document.getElementById ('" + this.ClientID + "').value+=Ctrls[i].id+','+Ctrls[i].scrollTop+','+Ctrls[i].scrollLeft+';';}}}";
string Script2;
Script2 = "function LoadState() {";
Script += "var Ctrls=document.getElementsByTagName('*');";
Script2 += "x=Ctrls.length;";
Script2 += "mass=document.getElementById ('" + this.ClientID + "').value.split(';');";
Script2 += "var i;var j;for(i=0;i<mass.length-1;i++) {";
Script2 += "m2=mass[i].split(',');if (m2.length==3){for(j=0;j<x;j++){";
Script2 += "if (m2[0]==Ctrls[j].id)";
Script2 += "{Ctrls[j].scrollTop=m2[1];";
Script2 += "Ctrls[j].scrollLeft=m2[2];";
Script2 += "}}}}}";
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Scroll", Script + Script2, true);
}
}
}
//конец кода хранителя скролов

public partial class vvod : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Default.aspx");
}
.... и тд
...
Рейтинг: 0 / 0
04.10.2006, 11:45
    #34031001
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите сохранять scroll-ы
Вообще этот контрол компилируется в библиотеку и кладется на форму.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
04.10.2006, 12:00
    #34031070
seeerg_23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите сохранять scroll-ы
а поподробнее, плз. В какую библиотеку и как??? как он потом кладётся на форму???
...
Рейтинг: 0 / 0
04.10.2006, 12:12
    #34031132
vinipuh@list.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите сохранять scroll-ы
А так сделать низя?

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback="true" %>
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / помогите сохранять scroll-ы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]