Несколько UpdatePanels и onload - PullRequest
0 голосов
/ 13 мая 2009

У меня есть страница с 2 динамически загружаемыми пользовательскими элементами управления, каждый из которых находится на своей собственной панели обновлений. При загрузке пользовательских элементов управления я выполняю JavaScript, который обновляет CSS ячеек таблицы.

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "Load_RunScript()", true);

Оба пользовательских элемента управления имеют кнопки, каждая из которых вызывает обратную передачу, а на стороне сервера выполняет JS для внесения некоторых изменений. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку на одном из пользовательских элементов управления (скажем, UCtlA), обратная передача вызывает динамическую перезагрузку пользовательских элементов управления, которая выполняет сценарий загрузки в UCtlB, а также замедляет работу страницы. 1004 *

Поскольку UC находятся в UpdatePanels, я понимаю, что пользовательский интерфейс не должен повторно отображаться при обратной передаче. Почему это происходит и каково решение?

Ответы [ 2 ]

0 голосов
/ 13 мая 2009

Добавьте свойство UpdateMode = "Conditional" и, возможно, ChildrenAsTriggers = "false"

http://weblogs.asp.net/alessandro/archive/2008/01/30/reducing-updatepanel-bloat-by-utilizing-updatemode-quot-conditional-quot-and-childrenastriggers-quot-false-quot.aspx

Честно говоря, я бы сказал, что держитесь подальше от UpdatePanels, потому что это собаки, особенно вложенные в UpdatePanels.

0 голосов
/ 13 мая 2009

UpdatePanels вызывают обратную передачу, аналогичную обратной передаче страницы. Чтобы избежать ненужной работы в Pageload, проверьте свойство ScriptManager.IsInAsyncPostback для обнаружения обратной передачи UpdatePanel. Только элементы управления в UpdatePanel, вызывающие обратную передачу, должны обновлять свой графический интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...