Какие элементы управления поддерживаются ViewState?

StackOverflow https://stackoverflow.com/questions/606887

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь разобраться в инфраструктуре управления, чтобы понять, для каких из них ASP.NET поддерживает состояние представления.

Есть такие обычные HTML-элементы управления, например:<input type="radio" checked="checked"/> -> Я понимаю, что у них нет состояния просмотра

Затем есть элементы управления HTML с runat="server"<input type="radio" checked="checked" runat="server"/> -> Сохраняется ли состояние просмотра между обратными передачами?

Затем есть элементы управления ASP.NET.<asp:TextBox id="txtMyText" runat="server"/> -> Я понимаю, что у них есть состояние просмотра

У нас есть несколько пользовательских элементов управления, наследующих HtmlTextBox.<myPrefix:myTextBox id="txtMyText" runat="server"/> -> Это то же самое, что и тип 2 выше?

Можно ли с уверенностью предположить, что любой контроль с runat="server" тег будет поддерживать состояние просмотра?

Это было полезно?

Решение

Существует три типа элементов управления: стандартные элементы HTML, такие как , серверные элементы управления HTML, к которым добавлен тег runat=server, и полные веб-элементы управления.Только веб-элементы управления сохраняют состояние просмотра.

Другие советы

Когда у нас возникли проблемы с состоянием просмотра, я начал использовать вспомогательное программное обеспечение Viewstate от Binary Fortress. http://www.binaryfortress.com/aspnet-viewstate-helper/

Это дает вам реальное представление о том, что происходит, а также помогает решить проблемы с производительностью, связанные с состоянием просмотра. Вы можете декодировать состояние просмотра одним щелчком мыши и посмотреть, что там на самом деле, - так вы поймете, какие элементы управления используют состояние просмотра, а какие нет. т, и что именно они там хранят.

Кроме того, никто еще не упомянул ControlState.Это появилось вместе с ASP.NET 2 и теория заключается в том, что важные вещи, необходимые для функционирования элемента управления, находятся в состоянии управления, а данные и т. д. в состоянии просмотра, поэтому вы можете отключить состояние просмотра и привязать данные к своему элементу управления при каждой обратной передаче, и элемент управления по-прежнему в основном работает используя controlstate.Я говорю «теория», потому что на практике реализация кажется неоднородной.Когда вы просматриваете код раскрывающегося списка, например, с помощью отражателя, это реализовано неправильно.Возможно, это изменилось в более поздних версиях платформы, я не уверен.Там много информации о controlstate, если вы ее ищете, я просто решил упомянуть об этом.

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

Все, что вы помещаете в представление своей страницы и добавляете runat="server", будет поддерживать состояние просмотра.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top