Плохо ли использовать runat= "server"?

Я поддерживаю приложение, которое использует runat="server" повсюду, чтобы показать / скрыть строки таблицы.

например, в местах, где есть зависимые раскрывающиеся списки, строка с дочерним ddl будет скрыта до значения us, выбранного в Родительском ddl.

Это плохая практика? Есть ли лучший способ сделать это?

7 ответов


Я использую runat="server" в любое время, когда мне это нужно. Так что, думаю, ты тоже можешь им воспользоваться. :-)


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

во-вторых, любая приличная структура javascript позволит вам скрыть элементы управления show на основе идентификатора элемента управления, имени класса или любого селектора css. Кроме того, использование javascript post/get для универсального обработчика даст вам данные, которые вам нужны без обратной передачи.

Я бы предложил использовать JQuery или некоторые другая альтернатива.


Это зависит от того, насколько вы заботитесь о производительности. Все, что помечено runat= "server", проходит больше обработки, чем просто теги на стороне клиента.

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


неплохо использовать runat= "server" со стандартными элементами управления HTML. Часто вы найдете использование заполнителей для отображения и скрытия содержимого на страницах или в ASP.NET MVC вы можете увидеть использование встроенных блоков кода, таких как в пределах представлений. По своему усмотрению, а не с учетом других аспектов дизайна, это ни хорошо, ни плохо.


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


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


совсем нет. ASP.NET поддерживает выполнение любого тега html на стороне сервера. Ваша альтернатива-обернуть тег в Panel, и скрыть или показать, что. Если вы не ищете дополнительную функциональность или хотите самостоятельно управлять выводом, выполнение тега html на сервере не является проблемой.