Мы знаем, что создание элемента управления обычно сложнее, чем модуля, который реализует только одну и ту же функцию, поскольку нам нужно учитывать больше исключений и адаптивности для достижения эффекта интеграции и повторного использования кода. И когда мы разрабатываем элемент управления ASP.NET, какими бы сложными ни были функции и производительность пользовательского интерфейса нашего элемента управления, в конечном итоге в клиентском браузере мы получаем просто комбинацию HTML-кода и сценариев.
Что касается HTML-кодов, генерируемых этими элементами управления, можно ли по желанию обрабатывать их форматы? Так что же значит не быть свободным? Должны ли мы обеспечивать форматирование HTML-кода и поддерживать хорошие иерархические отступы HTML? Здесь, наоборот, мы должны попытаться удалить все, что не имеет ничего общего с HTML-кодом элемента управления, включая «бесполезные» пробелы и возвраты каретки. Зачем подчеркивать бесполезное? Мы знаем, что когда браузер обрабатывает исходный код HTML, последовательные пробелы и возвраты каретки обрабатываются и отображаются как один пробел. Таким образом, кажется, что нам не нужно беспокоиться о дополнительных бесполезных пробелах или возвратах каретки до, после или в середине HTML-кода при отображении элемента управления ASP.NET. Итак, давайте рассмотрим следующий пример: <img id="analysisChart" src="ChartPic_000007.jpeg?B9FA64E7-2020-4430-AAF4-B20A51794909" usemap="#usemap_analysisChart">
<map id="usemap_anaлизChart">
<площадь>...<площадь>
</карта>
'www.downcodes.com
Приведенный выше фрагмент кода представляет собой HTML-код, выводимый элементом управления «Веб-диаграмма» в веб-элементах управления Dundas. Кажется, нет никаких проблем при использовании этого изображения диаграммы с горячей областью. Если вы просто используете эту диаграмму, проблем действительно нет. Но когда мы объединяем Dundas Chart в пользовательский WebControl, его HTML-код с разрывами строк и отступами вызывает проблемы. Из-за требований к макету мне нужно поместить эту диаграмму в таблицу, чтобы в таблице отображалась пиксельная граница, близко окружающая диаграмму. Первоначально эта диаграмма представляла собой просто картинку, и с этой комбинацией, казалось, не было никаких проблем. Однако реальная ситуация такова, что изображение диаграммы никогда не могло заполнить внешнюю таблицу (как показано ниже), и там. всегда были пробелы внизу картинки и по нижнему краю стола. Есть разрыв в 3-4 пикселя. Этот разрыв вызван пробелом и разрывом строки между <img /> и <map> (хотя IE воспринимает его только как пробел).
|
Поскольку Dundas Web Chart представляет собой выпущенную скомпилированную dll, становится сложнее удалять ненужные пробелы и возвраты каретки в выводимом HTML-коде. Мы можем только извлечь HTML-код из его потока Render, затем вручную удалить пробелы и возвраты каретки между тегами, а затем вывести его в выходной поток нового элемента управления. Хотя этот метод может решить некоторые проблемы, если внутренний контроль слишком сложен, это станет дополнительным бременем с точки зрения точности и эффективности.
Итак, из приведенных выше вопросов мы видим, что когда мы создаем элемент управления ASP.NET, окончательно отображаемый HTML-код должен следовать «принципу компактности кода», чтобы улучшить адаптируемость элемента управления. Согласно этому принципу предыдущий пример должен выглядеть так:
менее карта>
Таким образом, изображение диаграммы плотно прилегает к окружающей его границе таблицы.