![]() |
|
Модераторы: gambit |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
Недавно начал изучение ASP.NET, использую С#. В принципе процесс идет, все изучается по маленьку. Но. Пока не где не встречал материал по организации жизни страницы и о том что, где, когда и как правильно делать.
К примеру рассмотрим вопрос работы с БД. В данный момент схема работы у меня строиться слудеющим образом: В обработчике Page_PreRender который отрабатывает после каждого обновления страницы, клацания по кнопке и много когда еще я каждый раз делаю стандартный запрос к БД и обновляю всю инфу на странице.
В начале немного пояснений: Вопрос 1: почему именно в Page_Prerender а не в Page_Load ? Ответ: потому что если делать в Page_Load возникают непонятные глюки (кнопки edit или delete в GridView срабатывают со второго раза и после перехода в режим редактирования либо получаю пустые поля либо ошибку об необработанном исключении). Вопрос 2: почему не использую хорошее свойство IsPostBack Ответ: по той же причине что и в первом вопрос, почти все аналогично. Теперь немного о плюсах и минусах данной схемы: Плюсы: не будучи силен в web и БД, мне кажется очевидным плюсом то что данные на странице постоянно обновляются, конечно не регулярно, но при непосредственной работе с элементами страницы пользователь будет видеть самые последние данные. Минусы: 1) при каждом клацание чего либо происходит запрос к БД, это также является и минусом если БД очень большая. 2) более весомая, на мой взгляд. Так как при малейшем обновлении страницы происходит полное обновление отображаемых на странице данных из БД, то получается именно через этот метод нужно проводить любые обновление в отображаемых данных. К примеру, есть Грид и две кнопки. Первая кнопка показать всех 'Петь', вторая показать всех 'Юль'. Таким образом при клацание на одну из кнопок ( к примеру на 'Юльки') в ее обработчике не будет производиться непосредственно обновление отображаемых в гриде данных, потому что это не имеет смысла. Даже если я сделаю запрос к бд и выведу его в грид, то после этого отработает метод Page_PreRender() в котором опять сделается стандартный запрос и выведутся другие данные. Таким образом в обработчике кнопки мне остается сделать только изменение какой либо переменной (хранимое в Sessions на пример) а уже в Pare_PreRender() проверять все эти переменная и в зависимости от их значений делать определенного вида запрос. Ну и любые другие действия с данными происходят по такой же схеме. При Edit'e данных, в обработчике и ях просто скидываю в БД, знаю что в методе Page_PreRender они считаются и выведутся в обновленном виде. И хорошо и плохо. Хотелось бы послушать как это происходит у бывалых. Ну и если повезет о багах которые происходят из за IsPostBack или Page_Load. |
|||
|
||||
| A5uKa |
|
|||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
Ну работает как должно работать . . .
В основном использую ObjectDataSoucs-ы, которые ориентированны на методы из разных модулей. На кнопку идёт подбор параметров и DataBind(); на элементе и после этого страница обновляется. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |