Плохо ли использовать 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 на сервере не является проблемой.