powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос про PostBackUrl
6 сообщений из 6, страница 1 из 1
Вопрос про PostBackUrl
    #37742799
mvn3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Разбираюсь с ASP.NET, в частности с собжем. Правильно ли я понимаю что если есть 2-ва Вебформза: WebForm1, WebForm2 и в качестве межстраничного проброса данных используется PostBackUrl то получить все данные из предыдушей страницы можно только в том случае если WebForm2.Page.IsPostBack == false? т.е.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                WebForm1 webForm1 = PreviousPage as WebForm1;
                if(webForm1 != null)
                {
                    Label1.Text = "Page was loaded first time";
                    Label2.Text = webForm1.FirstName + " " + webForm1.LastName;
                }
            }
            else
            {
                Label1.Text = "Page was loaded not first time";
                WebForm1 webForm1 = PreviousPage as WebForm1; // ТУТ УЖЕ ВСЕГДА БУДЕТ NULL? правильно?
                Label2.Text = webForm1 == null ? "WebForm1 object is null" : "WebForm1 object is not null"; 
            }
        }



Таким образом, если необходимо сохранить данные между запросами уже страницы WebForms2 мне необходимо вручную посохранять данные во ViewState/QueryString/Cookie/Session. т.к. во ViewState объект WebForm1 я сохранить не могу.
...
Рейтинг: 0 / 0
Вопрос про PostBackUrl
    #37742864
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvn3,
не совсем понял.
но как только вы написали ( на мой взгляд не совсем оптимально)
Label1.Text = "Page was loaded first time";
Label2.Text = webForm1.FirstName + " " + webForm1.LastName;
текст лейблов уже залег в ViewState
чё его сохранять, его контрол сама сохранил без вас ( если состояние не отключено)
...
Рейтинг: 0 / 0
Вопрос про PostBackUrl
    #37742889
mvn3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Код: c#
1.
2.
3.
4.
Label1.Text = "Page was loaded not first time";
                WebForm1 webForm1 = PreviousPage as WebForm1;
                Label2.Text = webForm1 == null ? "WebForm1 object is null" : "WebForm1 object is not null";
                Label2.Text += " but view state values are: " + ViewState["FirstName"] + " " + ViewState["LastName"];



ничего не выводит, или я не правильно пытаюсь получить доступ ко ViewState?
...
Рейтинг: 0 / 0
Вопрос про PostBackUrl
    #37742908
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvn3,
нет вы не прально получаете
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                Label1.Text = "dfsdff";
            }
            else
            {
                Label1.Text += "dddddddddddddddd";// в этом месте лабел уже инициализован из состояния страницы, и можно пользоваться так
            }
        }


но если вы хотите работать с состояние полученным из передачи, как с объектом,
то рассмотрите такую схему, ей пользуются когда мастерят контролы, эта схема равнодушна
будете ли вы закрывать вюстейт на странице или нет, он все равно там будет.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 [Serializable]
    class MyState
    {
        public string Ddata { get; set; }
        public void IniMystate(WebForm1 Form1)
        {
            
        }
    }
    public partial class _Default : System.Web.UI.Page
    {
        MyState _stateControl = new MyState();

        protected override object SaveControlState()
        {
            return _stateControl;
        }

        protected override void LoadControlState(object state)
        {
            if (state != null)
            {
                _stateControl = (MyState)state;
            }
            base.LoadControlState(state);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                WebForm1 webForm1 = PreviousPage as WebForm1;
                _stateControl.IniMystate(webForm1);
            }
            else
            {
                Label1.Text = _stateControl.Ddata;
            }
        }
    }
...
Рейтинг: 0 / 0
Вопрос про PostBackUrl
    #37742912
mvn3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

все, я понял, спасибо за ответ
...
Рейтинг: 0 / 0
Вопрос про PostBackUrl
    #37742917
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvn3,
ViewState["FirstName"] + " " + ViewState["LastName"];
это пользовательские объекты в стейтбаге, это как частный случай.
он как бы к нам ваще не относится, надо уходить от него..
а понятие ViewState, это гораздо шире, это то что многие называют проклятием WebForms
(хотя сами не могут его вкусно приготовить)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос про PostBackUrl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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