powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров между формами
12 сообщений из 12, страница 1 из 1
передача параметров между формами
    #32709585
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Возникла проблема передачи значений между формами.
Рассмотрел хоттип ашдрюммера .
Сразу оговорюсь, что первый вариант через GET не устраивает.
Во втором случае (при передаче через сессию) возникает проблема, что открываемая страница не успевате обновляться при повторном открытии.
Код такой:
вызывающая страница
Код: plaintext
1.
2.
3.
4.
catch (Exception ex)
{
	Session["Error"]=ex.Message;
	Response.Redirect("errorpages.aspx");
}
вызываемая страница
Код: plaintext
1.
lblMessage.Text=Session["Error"].ToString();
Session.Remove("Error");
то есть если второй раз происходит исключение другого типа, то строка остается прежней, и нужно принудительно нажимать рефреш.
Оптимальным вариантом показался вариант 3 (Server.Transfer),
но если в проекте много форм и почти в каждой идет такой обработчик исключений
Код: plaintext
1.
2.
3.
4.
5.
catch(Exception ex)
{
	ErrorMsg=ex.Message;
	Server.Transfer("errorpages.aspx");
}
в форме errorpages нужно знать в какой из форм произошло исключение.
в хоттипе написано следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private void Page_Load
(object sender, System.EventArgs e)
{
	//create instance of source web form
	WebForm1 wf1;
	//get reference to current handler instance
	wf1=(WebForm1)Context.Handler;
	Label1.Text=wf1.Name;
	Label2.Text=wf1.EMail;
}
а хотелось бы чтобы обработать так можно было бы не только WebForm1, но и WebForm2, WebForm3 и так далее. то есть как я понимаю проблема в динамическом определении класса вызывающей страницы. а вот как это реализовать не имею понятия.
помогите пожалуйста.
...
Рейтинг: 0 / 0
передача параметров между формами
    #32709604
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после длительной возни остановился пока на миксе первого и 3-го вариантов
вызывающая
Код: plaintext
1.
2.
3.
4.
catch (Exception ex)
{
	Server.Transfer("errorpages.aspx?eid="+Server.UrlEncode(ex.Message));
}
вызываемая
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
try
{
	String eid = Request.QueryString["eid"];
	lblMessage.Text=Server.UrlDecode(eid);
}
catch
{
	lblMessage.Text="Непредвиденная ошибка в обработчике ошибок";
}
но вопрос по типам все-таки оставляю открытым
...
Рейтинг: 0 / 0
передача параметров между формами
    #32709905
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой вариант это наверное получать базовый тип WebFormы, а через него уже выбирать по id значения контролов.
...
Рейтинг: 0 / 0
передача параметров между формами
    #32710023
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то не понял - какие проблемы с сессиями? Пример приведите хороший :)

-- Tygra's --
...
Рейтинг: 0 / 0
передача параметров между формами
    #32710137
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а с сессией скорее всего кэширвоание в браузере, т.к. приведенный пример должен работать.
...
Рейтинг: 0 / 0
передача параметров между формами
    #32710208
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tygra
пример тот же самый
на одной форме задаем
Session["param1"]="value";
на другой запрашиваем
string s = Session["param1"];
и удаляем
Session.Remove("param1");
В первый раз отрабатывает, во второй показывает первое значение, нужно жать рефреш чтобы показало второе

2 VladiCh
а можно поподробнее, как это кэширование отключить что ли? это именно особенность настроек браузера или где-нибудь в проекте можно это задать?


--------------
вышел и рекурсии. оп-па!
...
Рейтинг: 0 / 0
передача параметров между формами
    #32710394
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно в проекте на InitPage
Код: plaintext
1.
2.
3.
{
 Response.Cache.SetCacheability(HttpCacheability.NoCache);
}


статья по теме
...
Рейтинг: 0 / 0
передача параметров между формами
    #32710681
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это может быть и кэширование, да. Отключить нафиг. Хотя у нас ничего не надо отключать, все и так работает.
Потому как сессии отрабатывают на все 100 - у нас весь сайт на них живет. Ну плюс еще кэши :)

-- Tygra's --
...
Рейтинг: 0 / 0
передача параметров между формами
    #32711092
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно через Response.Cache отключать, но Response.Cache.SetCacheability действует только на Cache-Control, а этого не всегда хватает.
нужно еще Response.Cache.SetExpires использовать.

можно и просто добавлять заголовки:

Код: plaintext
1.
2.
Response.AppendHeader("Cache-Control", "no-cache");
Response.AppendHeader("Pragma", "no-cache");
Response.AppendHeader("Expires", "0");

при любых настройках браузера это должно кэширование отключать.
...
Рейтинг: 0 / 0
передача параметров между формами
    #32712039
Фотография Radjaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ура. спасибо leTaon
все заработало!

--------------
вышел из рекурсии. и оп-па!
...
Рейтинг: 0 / 0
передача параметров между формами
    #32712071
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChпри любых настройках браузера это должно кэширование отключать
Использую именно эти 3 строки, чтобы отключить кэширование. В основном это работает. Но встречаются такие пользователи, у которых сервера (прокси, провайдеры и т.п.) просто игнорируют эти заголовки и "подсовывают" пользователям (браузерам) старые страницы.

Код: plaintext
kxmep
...
Рейтинг: 0 / 0
передача параметров между формами
    #32712320
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я немного погорячился - это не всегдя работает. И в браузере можно поставить "Never check for new versions". Но тогда может помочь подстановка рандомного параметра (а лучше guid) в строку запроса.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров между формами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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