На что влияет жизненный цикл страницы / элемента управления, когда элемент управления asp.net не имеет идентификатора - PullRequest
1 голос
/ 12 февраля 2010

Если в разметке вы объявляете элемент управления следующим образом:

<asp:Label runat="server" AssociatedControlID="txtSomeInput">Some Input:</asp:Label>
<asp:Textbox id="txtSomeInput" runat="server" />

Меняет ли отсутствие идентификатора из элемента управления меткой что-либо в отношении Viewstate или жизненного цикла Page / Control? Это просто сгенерированный идентификатор? Очевидно, что на него нельзя ссылаться в программном коде во время разработки (ну, по крайней мере, не для программиста) ... Просто любопытно, есть ли у этого побочные эффекты (или ощутимые преимущества)?

Далее, я бы предположил, что если на этот элемент управления нельзя ссылаться во время разработки, его нельзя реально изменить таким образом, чтобы добавить какую-либо информацию в viewstate ... но тег runat позволяет определить AssociatedControlID (главная страница например, идентификаторы дерьма) поэтому не нужно иметь html-метку с <% #%> для записи clientId ??

спасибо!

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

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

0 голосов
/ 12 февраля 2010

Некоторые побочные эффекты возникают, если вы используете некоторые инструменты, которые запускают скрипт на стороне клиента. Например, кнопка без идентификатора не может правильно инициировать операцию панели обновления правильно (в большинстве случаев), потому что при создании javascript рендеринг того, какие клики следует захватывать / перенаправлять как частичные обратные передачи ... отсутствие идентификатора оставляет его вне списка (Подумайте, какой javascript вы могли бы запустить вручную, чтобы подключить обработчик без него?) .

Для кнопки просто необходим обработчик правого клика, идентификатор не имеет значения для того, что запускает на стороне сервера ... но это приводит к тому, что клиентскому скрипту требуется больше времени.

В качестве примечания: если вы еще не знакомы с .Net 4, я предлагаю вам взглянуть: ситуация значительно улучшилась с ClientIDs .

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