Проблема с Page_Load
От: urukhay  
Дата: 27.09.08 17:35
Оценка:
Всем доброго времени суток. Есть две страницы: одна с гридвью (далее форма1) а другая предназначена для более подробного просмотра информации конкретной записи из формы1 (далее форма2).У гридвью есть следующего вида событие:
protected void utcountry_RowDataBound(object sender, GridViewRowEventArgs e)
{
HyperLink lnk;
if (e.Row.RowType == DataControlRowType.DataRow)
{
string id = Convert.ToString(((DataRowView)e.Row.DataItem)["id"]);
lnk = ((HyperLink)e.Row.Cells[1].Controls[0]);
lnk.NavigateUrl = string.Format("~/ Country.aspx?wndmode=view&id={0}", ((DataRowView)e.Row.DataItem)["id"]);
}
}
Здесь в навигэйт юрл в параметр дописывается айди строки грид, по которой кликнули. После клика по конкретной строке, и изменении в форме2 некоторых данных все работает отлично: данные сохраняются и с помощью Response.Redirect возвращаюсь на форму1. При этом в форме1 отобажаются измененные данные. А вот дальше, когда я второй раз кликаю по тойже строке (которую только что изменил) я попадаю на форму2, и там отображается информация, которая была ДО изменения. При этом в базе данных содержится измененная информация (т.е. та, которая и должна быть) и событие Page_Load вообще не срабатывает (при повторном клике по измененной строке). В чем может быть дело?
Re: Проблема с Page_Load
От: michael_isu Беларусь  
Дата: 28.09.08 08:48
Оценка:
Здравствуйте, urukhay, Вы писали:

U>Всем доброго времени суток. Есть две страницы: одна с гридвью (далее форма1) а другая предназначена для более подробного просмотра информации конкретной записи из формы1 (далее форма2).У гридвью есть следующего вида событие:

U>protected void utcountry_RowDataBound(object sender, GridViewRowEventArgs e)
U>{
U>HyperLink lnk;
U>if (e.Row.RowType == DataControlRowType.DataRow)
U>{
U>string id = Convert.ToString(((DataRowView)e.Row.DataItem)["id"]);
U>lnk = ((HyperLink)e.Row.Cells[1].Controls[0]);
U>lnk.NavigateUrl = string.Format("~/ Country.aspx?wndmode=view&id={0}", ((DataRowView)e.Row.DataItem)["id"]);
U>}
U>}
U>Здесь в навигэйт юрл в параметр дописывается айди строки грид, по которой кликнули. После клика по конкретной строке, и изменении в форме2 некоторых данных все работает отлично: данные сохраняются и с помощью Response.Redirect возвращаюсь на форму1. При этом в форме1 отобажаются измененные данные. А вот дальше, когда я второй раз кликаю по тойже строке (которую только что изменил) я попадаю на форму2, и там отображается информация, которая была ДО изменения. При этом в базе данных содержится измененная информация (т.е. та, которая и должна быть) и событие Page_Load вообще не срабатывает (при повторном клике по измененной строке). В чем может быть дело?

В кэшировании формы2
Re[2]: Проблема с Page_Load
От: urukhay  
Дата: 28.09.08 09:18
Оценка:

В кэшировании формы2

Я уже вычислил методом проб и ошибок, что форма2 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?
Re[3]: Проблема с Page_Load
От: Kvazimodo75  
Дата: 29.09.08 06:45
Оценка: -1
Здравствуйте, urukhay, Вы писали:

U>Я уже вычислил методом проб и ошибок, что форма2 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?


Добавлять в URL параметер, зависимый от времени. Можно даже по некоторому алгоритму туда ID шифровать слегка.
Или запретить на всех уровнях (браузер — прокся1 — ... — проксяN — ISS) кеширование страниц.

А так же провертье кешируемость запроса к базе.
Re[3]: Проблема с Page_Load
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.09.08 06:54
Оценка:
Здравствуйте, urukhay, Вы писали:
U>Я уже вычислил методом проб и ошибок, что форма2 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?
1. Поставьте себе http://fiddler.com. Это поможет отслеживать трафик без "проб и ошибок".
2. Освойте RFC 2616 на предмет хидеров, которые влияют на кэширование
3. Творчески применяя п 1. и 2. разберитесь, какие хидеры вызывают у вас проблемы с данной конкретной страницей
4. Разберитесь, откуда они берутся в Response, и добейтесь нужного набора этих хидеров.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Проблема с Page_Load
От: Kvazimodo75  
Дата: 29.09.08 09:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

А можно узнать, что именно Вам не понравилось?
Re[5]: Проблема с Page_Load
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.09.08 10:04
Оценка: +1
Здравствуйте, Kvazimodo75, Вы писали:
K>А можно узнать, что именно Вам не понравилось?
То, что вы предлагаете одну из самых крайних мер. Принудительный запрет кэширования страниц можно делать только в том случае, если
а) понятно, что именно такое поведение пользователю и нужно и
б) его не удается обеспечить нормальными способами.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Проблема с Page_Load
От: Kvazimodo75  
Дата: 29.09.08 11:11
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>То, что вы предлагаете одну из самых крайних мер.


Спасибо. Это гораздо информативнее, чем просто минус.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.