ASP.NET 2.0 HtmlTable Rows - скрытие, не делая невидимым

Мне нужно найти способ скрыть HTML-строки (или таблицы) от просмотра, не блокируя их отрисовку. Установка this.myTable.Visible = false может показаться самым простым способом скрыть таблицы от пользователя, но это предотвращает отправку таблицы HTML в браузер, что вызывает проблему, потому что я использую валидаторы и мне нужно убедиться, что Невидимые элементы проверяются (из-за логики навигации по страницам, только некоторые элементы будут отображаться для пользователя одновременно).

Я пытался изменить свойство Style, но asp.net говорит, что он доступен только для чтения, поэтому я не могу сделать его невидимым с помощью CSS. Также я бы предпочел не использовать Javascript, но если есть простое решение с JS, это нормально.

Любая помощь приветствуется.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
0
11 345
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Чтобы скрыть полную таблицу (но по-прежнему отображать ее для клиента), оберните ее в div с style = "display: none":

<div style = "display:none;">
 asp.net table goes here
</div>

Хотя для одиночных строк это не работает. Возможно, вам придется использовать какой-нибудь javascript (например, jquery, как рекомендовал другой пользователь).

Вы можете установить это на стороне сервера, добавив свойство display в коллекцию стилей. Само свойство коллекции стилей доступно только для чтения (вы не можете его заменить), но вы можете добавить к нему элемент, чтобы отразить установку этого свойства стиля.

 table.Style.Add("display","none")

или же

 table.Style["display"] = "none";

То же самое верно и для строк таблицы, поскольку коллекция стилей унаследована от HtmlGenericControl.

РЕДАКТИРОВАТЬ: HTML-элемент управления должен быть runat = "server", чтобы это работало, что, как я предполагаю, принадлежит вам, поскольку вы можете установить свойство Visible.

Вы можете сделать свой <tr> s серверные теги. Для этого измените свои строки в

<tr id = "rowID" runat = "server">

Таким образом, вы можете получить доступ к их свойствам, таким как свойства rowID.style или class.

Помимо использования свойства стиля, вы всегда можете поместить стиль в элемент либо прямо на самом теге, либо в коде через element.Attributes["style"] = "display: none;";. Чтобы сделать это в коде, вам нужно сделать их серверными элементами управления, добавив runat = "server" и установив идентификатор.

Спасибо за полезную информацию, ребята. Мне удалось объединить два предыдущих ответа, чтобы придумать отличное решение. Для справки вот это:

Я использовал теги div вокруг таблиц, которые хотел показать и скрыть, например:

<div style = "display:none;" id = "tblHideItems1" runat = "server">

Я сослался на них в коде программной части следующим образом:

Definition:
    protected System.Web.UI.HtmlControls.HtmlGenericControl tblHideItems1;

To show:
this.tblHideItems1.Style.Add("display", "inline");

To hide:
this.tblHideItems1.Style.Add("display", "none");

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

Еще раз спасибо за понимание !!

ребята даже table.Visible = Ложь работает при условии вы установили runat = "server" для таблицы конечно

Свойство [Control.Visible] [1] определяет, следует ли отправлять элемент управления механизму рендеринга HTML. Если вы установите table.Visible = false, то таблица не будет проходить рендеринг ASP.NET, не будет проходить через IIS и не дойдет до конечного пользователя. n2009 требует, чтобы конечный пользователь получил таблицу для валидаторов. Style = "display: none" попадет в движок рендеринга браузера.

Adam Dunn 01.02.2013 02:41

Ссылка должна была быть на Control.Visible свойство

Adam Dunn 01.02.2013 03:24

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