Всем доброго времени суток. Есть две страницы: одна с гридвью (далее форма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 вообще не срабатывает (при повторном клике по измененной строке). В чем может быть дело?
Здравствуйте, 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 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?
Здравствуйте, urukhay, Вы писали:
U>Я уже вычислил методом проб и ошибок, что форма2 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?
Добавлять в URL параметер, зависимый от времени. Можно даже по некоторому алгоритму туда ID шифровать слегка.
Или запретить на всех уровнях (браузер — прокся1 — ... — проксяN — ISS) кеширование страниц.
Здравствуйте, urukhay, Вы писали: U>Я уже вычислил методом проб и ошибок, что форма2 не обновляется. Ее приходится обновлять руками, т.е. нажатием кнопки "обновить" в браузере. После этого отображается все корректно. А как сдалеть, чтобы при каждом клике по ссылке ведущей на форму2, обновление страницы происходило автоматически?
1. Поставьте себе http://fiddler.com. Это поможет отслеживать трафик без "проб и ошибок".
2. Освойте RFC 2616 на предмет хидеров, которые влияют на кэширование
3. Творчески применяя п 1. и 2. разберитесь, какие хидеры вызывают у вас проблемы с данной конкретной страницей
4. Разберитесь, откуда они берутся в Response, и добейтесь нужного набора этих хидеров.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Kvazimodo75, Вы писали: K>А можно узнать, что именно Вам не понравилось?
То, что вы предлагаете одну из самых крайних мер. Принудительный запрет кэширования страниц можно делать только в том случае, если
а) понятно, что именно такое поведение пользователю и нужно и
б) его не удается обеспечить нормальными способами.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.