ASP.NET Как вызвать событие загрузки на предыдущей странице с постбэками между страницами - PullRequest
0 голосов
/ 22 февраля 2010

Я работаю над подобным мастеру набором страниц и полагаюсь на постбэки между страницами для навигации между ними.

Мне нужно иметь возможность вызвать событие Load на предыдущей странице, чтобы сохранить данные формы для страницы.

Мне сказали, что для подобных ситуаций все, что мне нужно было сделать, это получить доступ к свойству PreviousPage на целевой странице, и это вызвало бы событие загрузки предыдущей страницы, но по какой-то причине это, похоже, не рабочий.

Можно ли еще что-нибудь сделать, чтобы явным образом вызвать событие загрузки на предыдущей странице, если свойство PreviousPage не равно NULL?

Спасибо за вашу помощь,

Yong

Ответы [ 3 ]

1 голос
/ 22 февраля 2010

Рассматривали ли вы перемещение какой-либо логики сохранения, которую вы выполняете при загрузке предыдущей страницы, в метод на странице?

Таким образом, вы можете просто нажать:

if(PreviousPage != null)
   PreviousPage.DoThatSavingThing();

Очевидно, вам нужно будет ввести его, чтобы получить конкретные методы, которые вы добавляете, если только вы не добавили их на все страницы.

0 голосов
/ 22 февраля 2010

Чтобы добавить - я тестировал, используя два метода получения "строго типизированной" предыдущей страницы.

  1. Добавлена ​​ссылка на пункт назначения:

  2. Добавлена ​​директива PreviousPage для пункта назначения:

При доступе к свойству PreviousPage в месте назначения событие Load было запущено на Страница PreviousPageName (источник).

Пример (при условии, что в PreviousPageName (Исходная страница) есть открытое свойство Test):

protected void Page_Load(object sender, EventArgs e)
{
    if (PreviousPage != null)
    {
        //Using a reference, you have to cast:
        PreviousPageName x = (PreviousPageName)PreviousPage;
        string test = x.Test;

        //Using the PreviousPage directive, you do not need to cast:
        string test2 = PreviousPage.Test


    }
}
0 голосов
/ 22 февраля 2010

Это звучит немного смущающе для меня, но если вы хотите получить доступ к данным, лучше всего сохранить эти данные в то, что вы можете легко получить, например, кеш сеанса ASP.NET. Поэтому вместо того, чтобы возвращаться к ранее пройденной странице для получения данных, вы будете кэшировать данные при первом достижении первой страницы, а затем, когда пользователь перейдет на 2-ю страницу, он получит доступ к этой информации. 1001 *

...