Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему сбрасывается переменная ??? / 9 сообщений из 9, страница 1 из 1
07.08.2006, 10:39
    #33902375
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Здравствуйте.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    Protected Sub LinksTreeView_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        If LinksTreeView.SelectedNode.Depth =  4  Then
            par_2 = LinksTreeView.SelectedNode.Value.ToString
            Response.Redirect("~/Default4.aspx?par_1=" & par_1 & "&par_2=" & par_2)
        End If
        If LinksTreeView.SelectedNode.Depth =  3  Then
            par_1 = LinksTreeView.SelectedNode.Value.ToString
           
        End If
        
    End Sub

Обращение к процедуре происходит два раза.
При первом обращении работает второй IF и запоменается первая переменная par_1.
При втором обращении первый IF и переменная par_2 и сразу же идёт redirect
с передачей этих двух переменных !!!
Но почему-то par_1 при втором обращении сбрасывается !!!
Почему ???

Спасибо.
...
Рейтинг: 0 / 0
07.08.2006, 11:01
    #33902422
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Используйте viewstate, а лучше учите матчасть.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
07.08.2006, 11:13
    #33902461
Tutrix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Здравствуйте, OreL, Вы писали:

OL>Здравствуйте.
OL> Protected Sub LinksTreeView_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
OL> If LinksTreeView.SelectedNode.Depth = 4 Then
OL> par_2 = LinksTreeView.SelectedNode.Value.ToString
OL> Response.Redirect("~/Default4.aspx?par_1=" & par_1 & "&par_2=" & par_2)
OL> End If
OL> If LinksTreeView.SelectedNode.Depth = 3 Then
OL> par_1 = LinksTreeView.SelectedNode.Value.ToString

OL> End If

OL> End Sub
OL>Обращение к процедуре происходит два раза.
Эти обращения происходят при одном запросе к серверу или при разных?
OL>При первом обращении работает второй IF и запоменается первая переменная par_1.
OL>При втором обращении первый IF и переменная par_2 и сразу же идёт redirect
OL>с передачей этих двух переменных !!!
OL>Но почему-то par_1 при втором обращении сбрасывается !!!
OL>Почему ???

OL>Спасибо.

OL>
данное сообщение получено с www.gotdotnet.ru
OL>ссылка на оригинальное сообщение
...
Рейтинг: 0 / 0
07.08.2006, 11:13
    #33902462
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
C...R...a...S...HИспользуйте viewstate, а лучше учите матчасть.----------------------------------------
Knowledge is P...O...w...E...R!
My site

Что такое матчасть ???
...
Рейтинг: 0 / 0
07.08.2006, 11:21
    #33902481
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
TutrixЗдравствуйте, OreL, Вы писали:

OL>Здравствуйте.
OL> Protected Sub LinksTreeView_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
OL> If LinksTreeView.SelectedNode.Depth = 4 Then
OL> par_2 = LinksTreeView.SelectedNode.Value.ToString
OL> Response.Redirect("~/Default4.aspx?par_1=" & par_1 & "&par_2=" & par_2)
OL> End If
OL> If LinksTreeView.SelectedNode.Depth = 3 Then
OL> par_1 = LinksTreeView.SelectedNode.Value.ToString

OL> End If

OL> End Sub
OL>Обращение к процедуре происходит два раза.
Эти обращения происходят при одном запросе к серверу или при разных?
OL>При первом обращении работает второй IF и запоменается первая переменная par_1.
OL>При втором обращении первый IF и переменная par_2 и сразу же идёт redirect
OL>с передачей этих двух переменных !!!
OL>Но почему-то par_1 при втором обращении сбрасывается !!!
OL>Почему ???

OL>Спасибо.

OL>
данное сообщение получено с www.gotdotnet.ru
OL>ссылка на оригинальное сообщение

При разных !
При чём я забыл написать вот это:
Код: plaintext
1.
Public par_1 As String
Public par_2 As String
Cкорее всего здесь собака и зарыта !!!
Хотел clipboard использовать, но VB.NET в ASP.NET его не поддерживает !!
Что сделать ума не приложу ! :-(
...
Рейтинг: 0 / 0
07.08.2006, 11:38
    #33902541
Tutrix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
OL>При разных !
OL>При чём я забыл написать вот это:
OL>Public par_1 As String
OL>Public par_2 As StringCкорее всего здесь собака и зарыта !!!
OL>Хотел clipboard использовать, но VB.NET в ASP.NET его не поддерживает !!
OL>Что сделать ума не приложу ! :-(

В asp.net объект страницы создается каждый раз заново при каждом
обращение к серверу.В твоем случае надо использовать
ViewState

OL>
данное сообщение получено с www.gotdotnet.ru
OL>ссылка на оригинальное сообщение
...
Рейтинг: 0 / 0
07.08.2006, 11:41
    #33902551
gerss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Судя по всему, между вызовами происходит Postback, то есть отправка данных на сервер. Простые переменные при Postback теряют свои значения (состояние не хранится, если его специально не сохранять).

Поэтому Вам дали верный совет - хранить во ViewState:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
private string par_1
{
  get
  {
    object val = ViewState["Par1"];
    return (val == null ? string.Empty : (string)val);
  }
  set
  {
    ViewState["Par1"] = value;
  }
}

private string par_2
{
  get
  {
    object val = ViewState["Par2"];
    return (val == null ? string.Empty : (string)val);
  }
  set
  {
    ViewState["Par2"] = value;
  }
}

Сергей

PS: А "матчасть" - это самые основы, то, что прежде всего нужно знать, чтобы не задавать таких простейших вопросов. Местные гуру их очень не любят, причем оправданно.

------------------
Умом Россию не понять...
С умом она несовместима.
...
Рейтинг: 0 / 0
07.08.2006, 11:47
    #33902579
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Спасибо всем за ответы.
Буду юзать ViewState !!!
...
Рейтинг: 0 / 0
07.08.2006, 12:15
    #33902675
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему сбрасывается переменная ???
Результат:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 Protected Sub LinksTreeView_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        If LinksTreeView.SelectedNode.Depth =  4  Then
            par_2 = LinksTreeView.SelectedNode.Value.ToString
            Response.Redirect("~/Default4.aspx?par_1=" & ViewState.Item("par_1").ToString & "&par_2=" & par_2)
            Exit Sub
        End If
        If LinksTreeView.SelectedNode.Depth =  3  Then
            ViewState.Add("par_1", LinksTreeView.SelectedNode.Value.ToString)
        End If
    End Sub
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему сбрасывается переменная ??? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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