Лучший серверный контроль для окружающих блоков - PullRequest
0 голосов
/ 22 октября 2008

Мне интересно, какой элемент управления сервером обычно используют для окружения и разделения блоков связанных элементов управления и контента в сценарии веб-форм. Часто мне нужно окружить блок HTML и связанные с ним серверные элементы управления «панелью», которую я могу показать или скрыть на основе некоторой логики пользовательского интерфейса в коде. Обычно я сталкиваюсь с использованием Panel, но это не работает, если мне нужно заключить несколько TR в таблицу, например, потому что Panel отображает как div, который недопустим внутри тега Table. В этой ситуации я обычно просто устанавливаю каждый TR на сервер runat и показываю / скрываю каждого из них по отдельности, но должен быть лучший способ. Я видел элемент управления PlaceHolder, используемый для этого сценария, но хотел знать, делает ли кто-то это или есть какие-либо другие предложения.

Ответы [ 4 ]

1 голос
/ 23 октября 2008

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

Панели отлично подходят для случая, когда получающийся div будет работать просто отлично. PlaceHolder наследует от Control вместо WebControl, чтобы вы могли сделать аргумент, что он использует меньше накладных расходов. Когда у меня есть таблица, и мне нужно скрыть отдельную строку таблицы, у меня нет никаких компоновок с добавлением, а также с id и runat = "server" в tr.

Или, для случаев, когда мне нужно создать большую большую таблицу элементов управления редактором (это подходит в 90% случаев, когда я хочу скрыть одну строку таблицы), я даже создал элемент управления, который автоматизирует некоторые из разметка для меня. Этот элемент управления автоматизирует текст заголовка поля независимо от того, будет ли он выделен жирным шрифтом (обязательно), добавляет всплывающую подсказку со всплывающей подсказкой, и все, что мне нужно добавить вручную, это текстовое поле или другой элемент управления редактора. Положительным побочным эффектом является то, что мой пользовательский элемент управления дает мне идентификатор, на который я также могу установить Visible.

0 голосов
/ 22 октября 2008

Возможно буквальный контроль.

0 голосов
/ 22 октября 2008

Вы можете использовать любой html-элемент, который вам нужен, просто дайте ему идентификатор и сервер runat. Это дает вам некоторую гибкость.

0 голосов
/ 22 октября 2008

Даже с элементом управления PlaceHolder Visual Studio будет жаловаться, что у вас нет действительного HTML.

Вы можете стиснуть зубы и сделать это с помощью блоков кода на стороне сервера, которые обращаются к свойствам кода:

<table>
  <tr>
     ....
  </tr>

  <% if( ShowSecretRow ) { %>

  <tr>
    <td>shhh!</td>
  </tr>

  <% } %>
</table>

Будьте осторожны ... это скользкий уклон, и вы не хотите, чтобы ваш ASPX был слишком запутанным.

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