Существует несколько способов обработки элементов управления рендерингом / отображением на странице, и вам следует обратить внимание на то, что происходит с каждым методом.
Рендеринг и видимость
В некоторых случаях элементы на вашей странице не нужно отображать для пользователя из-за некоторого типа логики или значения базы данных. В этом случае вы можете полностью запретить рендеринг (создание элемента управления на возвращаемой веб-странице). Вы можете захотеть сделать это, если элемент управления не нужно показывать позже на стороне клиента, потому что, несмотря ни на что, пользователю, просматривающему страницу, никогда не нужно его видеть.
Видимость любого элемента управления или элемента может быть установлена со стороны сервера. Если это обычный старый HTML-элемент, вам просто нужно установить значение атрибута runat
на server
на странице разметки.
<div id="myDiv" runat="server"></div>
Решение о том, визуализировать div или нет, теперь может быть принято в коде класса следующим образом:
myDiv.Visible = someConditionalBool;
Если установлено значение true, оно будет отображаться на странице, а если оно равно false, оно не будет отображаться вообще, даже не будет скрыто.
Скрытие на стороне клиента
Скрытие элемента выполняется только на стороне клиента. Это означает, что он отображается, но на нем установлен стиль CSS display
, который указывает браузеру не показывать его пользователю. Это полезно, когда вы хотите скрыть / показать вещи на основе пользовательского ввода. Важно знать, что элемент МОЖЕТ быть скрыт на стороне сервера, если для элемента / элемента управления установлено runat=server
, как я объяснил в предыдущем примере.
Скрытие в коде за классом
Чтобы скрыть элемент, который вы хотите отобразить на странице, но скрыть, есть еще одна простая строка кода:
myDiv.Style["display"] = "none";
Если вам необходимо удалить сторону сервера в стиле display
, это можно сделать, удалив стиль display
или установив для него другое значение, например inline
или block
(значения описаны здесь ).
myDiv.Style.Remove("display");
// -- or --
myDiv.Style["display"] = "inline";
Скрытие на стороне клиента с помощью JavaScript
Используя простой старый javascript, вы можете легко скрыть этот же элемент таким образом
var myDivElem = document.getElementById("myDiv");
myDivElem.style.display = "none";
// then to show again
myDivElem.style.display = "";
jQuery делает скрытие элементов немного проще, если вы предпочитаете использовать jQuery:
var myDiv = $("#<%=myDiv.ClientID%>");
myDiv.hide();
// ... and to show
myDiv.show();