Sdscompany.ru

Компьютерный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Asp net html

Элементы управления HTML

В следующих разделах вы узнаете о серверных элементах управления HTML, определенных в пространстве имен System.Web.UI.HtmlControls. В целом существует около двух десятков отдельных классов серверных элементов управления HTML. Они разбиты на отдельные категории на основе того, являются они элементами управления вводом (в этом случае они унаследованы от HtmlInputControl) или же могут содержать другие элементы управления (тогда они являются производными от HtmlContainerControl).

На рисунке ниже показана иерархия наследования:

Класс HtmlControl

Все серверные элементы управления HTML являются производными от базового класса HtmlControl. Ниже перечислены свойства, добавленные классом HtmlControl к базовому классу Control:

Класс HtmlContainerControl

Любой HTML-дескриптор, который имеет открывающий и закрывающий дескрипторы, может содержать другое содержимое либо элементы управления HTML. В качестве примера можно привести дескриптор ссылки, который обычно заключает текст или изображение в пару .. .. Многие другие HTML-дескрипторы также работают как контейнеры, включая все, начиная с

Для поддержки включения класс HtmlContainerControl добавляет два свойства:

InnerHtml

Возвращает или устанавливает HTML-текст внутри открывающего и закрывающего дескрипторов. При использовании этого свойства все символы остаются в том виде, как есть. Это означает возможность встраивания разметки HTML (выделение текста, добавление разрывов строк и т.п.)

InnerText

Возвращает или устанавливает текст внутри открывающего и закрывающего дескрипторов. При использовании этого свойства все символы, интерпретируемые как специальный синтаксис HTML (вроде угловой скобки

Класс HtmlInputControl

Элементы управления вводом HTML обеспечивают взаимодействие с пользователем. К ним относятся знакомые графические элементы управления — флажки, текстовые поля, кнопки и окна со списком. Все эти элементы управления генерируются с помощью дескриптора . Атрибут type указывает тип элемента управления вводом, как в (текстовое поле), (кнопка Submit (Отправить)), (элементы управления для загрузки файла).

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

Type

Предоставляет тип HtmlInputControl. Например, если это свойство установлено в text (текст), HtmlInputControl является текстовым полем для ввода данных.

Value

Извлекает либо устанавливает значение, связанное с элементом управления вводом. Значение, ассоциированное с элементом управления, зависит от типа элемента управления. Например, в текстовом поле это свойство хранит текст, введенный в элементе управления. Для кнопок оно соответствует тексту кнопки.

Как за час создать сайт на ASP.NET

Что делать, если сайт нужен был вчера, но писать его еще даже не начали? Самое время воспользоваться ASP.NET Web Forms!

ASP.NET Web Forms позволяет даже новичку быстро создать простой сайт. Если не планировать очень широкий функционал, то вполне можно справиться и за час.

Рассказываем, как это сделать, шаг за шагом.

Создание проекта ASP.NET в Visual Studio

Для начала создайте проект ASP.NET:

Евгений Кучерявый

Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Затем укажите его имя:

А потом выберите модель Web Forms:

Как только Visual Studio подготовит шаблон проекта, его можно будет запустить, чтобы проверить. Для этого нажмите кнопку IIS Express:

Visual Studio скомпилирует все файлы, запустит сайт и откроет его в браузере по умолчанию. Если сайт не открылся, на него можно перейти самостоятельно. Для этого в трее найдите иконку IIS Express и посмотрите там адрес сайта. Он должен быть примерно таким: http://localhost:5000 (цифры в конце могут отличаться).

Вот как выглядит шаблон сайта:

Тут уже есть несколько страниц и немного стилей. Каждая страница состоит из трех файлов:

  • Page.aspx. Файл с HTML-кодом страницы.
  • Page.aspx.cs. Класс, который отвечает за логику работы страницы.
  • Page.aspx.designer.cs. Класс, который служит прослойкой между HTML и C#.

Вот как выглядит About.aspx этого проекта:

А вот класс, который занимается логикой:

В About.aspx находится только фрагмент готовой страницы. Остальная часть располагается в файле Site.Master или Site.Mobile.Master. Контент из тега (About.aspx) встраивается на место тега (Site.Master) с идентичным ID:

Так на одной странице может быть несколько таких плейсхолдеров с разными ID: MainContent, RelevantArticles, Comments и так далее. Это позволяет легко управлять отдельными блоками страницы (как при использовании функции include() в PHP).

Как создать страницу в ASP.NET Web Forms

Чтобы создать другие страницы, нажмите правой кнопкой на название проекта и в контекстном меню выберите Add —> Web Form:

Будет создана страница с таким кодом:

Как добавить ссылку в меню

Меню находится в Site.Master:

В начале ссылки ставится знак «

», а название файла указывается без расширения.

Обратите внимание, что в других файлах знак тильды в начале ставить не нужно.

Как вставить HTML-код в страницу

Допустим, есть такая строка:

Если ее вывести, то пользователь увидит текст «Hello, World!», а не жирный шрифт. Чтобы передать в HTML-код строку вместе с тегом, нужно использовать не обычный тип string, а HtmlString:

Получение данных из URL

Дальше нужно получить данные из URL. Например, в ссылке /Article?id=1 хранится свойство id, которое необходимо, чтобы выбрать из базы данных статью с определенным идентификатором.

Получить это свойство можно с помощью статического класса Request (в нем хранятся и другие данные о запросе пользователя):

Перед тем как использовать значение, нужно проверить, существует ли оно, а потом привести его к необходимому типу:

Теперь значение можно использовать, чтобы открывать статьи по ссылке.

Вывод информации из базы данных

Описанного выше достаточно, чтобы добавить возможность получать и выводить статьи из базы данных. Для этого создайте класс Article:

Читать еще:  Outlook ошибка синхронизации папки

Затем добавьте таблицу в базе данных с идентичными полями:

Теперь можно создать класс для получения данных из СУБД:

Теперь можно перейти в код страницы и добавить получение и вывод статей в методе Page_OnLoad():

Вот как это работает:

Заключение

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

  • о внешнем виде;
  • ограничении количества выводимых статей;
  • админской панели;
  • наполнении страниц и других важных вещах.

Если вы хотите научиться создавать более сложные сайты с помощью ASP.NET, записывайтесь на курс «Профессия C#-разработчик», на котором вы освоите C# и ASP.NET, а также соберете портфолио из проектов для компьютеров и веб-проектов.

Курс

Профессия С#-разработчик

130 часов — и вы научитесь писать программы на языке, созданном Microsoft. В ы создадите 5 проектов для портфолио, даже если до этого никогда не программировали. После обучения — гарантированное трудоустройство.

ASP — Создание страницы ASP

Файл Active Server Pages (ASP) представляет собой текстовый файл с расширением «.asp». Этот файл может содержать:

  • текстовые данные;
  • теги языка HTML;
  • серверные сценарии.

Для быстрого создания файла «.asp» достаточно переименовать HTML-файл, сменив расширение «.htm» или «.html» на «.asp». Если файл не содержит функций ASP, сервер просто выполняет эффективную отправку файла на компьютер пользователя. Эта черта обеспечивает дополнительные удобства для веб-разработчиков, которые могут давать файлам расширение «.asp», даже если не предполагают впоследствии включать в них функции ASP.

Для опубликования вновь созданного файла «.asp» в Интернете следует сохранить его в виртуальном каталоге веб-узла (последний должен иметь разрешение «Сценарий» или «Выполнение»). После этого можно обратиться к данному файлу в запросе, указав в обозревателе соответствующий адрес URL. (Необходимо помнить, что поскольку страницы ASP должны обрабатываться на сервере, ввод физического пути к файлу «.asp» в данном случае недопустим.) Переданный сервером файл при просмотре в обозревателе представляет собой страницу HTML. В этом есть определенный смысл, так как перед отправкой файла на сервере выполняется его синтаксический анализ и выполняются все серверные сценарии ASP. Поэтому пользователи всегда получают обычные файлы HTML.

Файлы «.asp» могут создаваться в любом текстовом редакторе. По мере накопления опыта более удобной может оказаться работа в специальном редакторе, включающем дополнительную поддержку ASP, таком как Microsoft® Visual InterDev™. (Дополнительные сведения см. на веб-узле Microsoft Visual InterDev по адресу http://msdn.microsoft.com/vinterdev/.)

Добавление команд в сценарий для сервера

Серверный сценарий состоит из последовательности инструкций, обеспечивающих поочередное поступление команд на веб-сервер. (Разработчикам веб-узлов могут быть хорошо знакомы клиентские сценарии, выполняющиеся в веб-обозревателе.) В файлах «.asp» для обособления сценариев от текстовых данных и команд HTML используются разделители. Разделителем является символ или последовательность символов, которыми обозначается начало или конец раздела. Язык HTML в качестве таких разделителей использует символы ( ), между которыми располагаются теги HTML.

В ASP команды сценариев заключаются в разделители . В разделителях можно указывать любые допустимые команды используемого языка сценариев. Ниже показан пример простой страницы HTML с командами сценария.

Функция VBScript Now() возвращает текущие дату и время. Во время обработки данной страницы веб-обозреватель заменит текущими значениями даты и времени и возвратит страницу обозревателю со следующим результатом:

Команды, заключенные в разделители, называются основными командами сценариев и обрабатываются при помощи основного языка сценариев. Команда внутри разделителей должна быть допустимой командой основного языка сценариев. По умолчанию основным языком сценариев является VBScript; можно назначить и другой язык сценариев по умолчанию. См. Работа с языками сценариев.

Разработчикам клиентских сценариев хорошо знаком HTML-тег

Лекция 2. Анатомия ASP.NET. ASP.NET в действии. (документация, исходники)

Ум сугубо математический будет правильно работать, только если ему заранее известны все определения и начала
Блез Паскаль

Введение

ASP.NET — один из компонентов .NET Framework. Перечислим кратко основные черты этой технологии:

  • Общеязыковая исполнительная среда CLR
  • Библиотека классов .NET Framework
  • Языки.NET(C#, VB.NET, J# и другие)
  • ADO.NET
  • ASP.NET
  • Web-службы
  • Промежуточный язык MSIL (Microsoft Intermediate Language). Это ассемблер для среды выполнения CLR.

ADO.NET — набор классов, предназначенных для доступа к базам данных Microsoft SQL Server, к источникам данных OLEDB и к файлам XML.

Разные части вашего проекта могут быть написаны на разных языках, это называется interoperability . Мы попробуем написать проект, где одна из страниц будет на Visual Basic, а другая на С#.

Компютерные языки бывают компилируемыми и интерпретируемыми. В процессе компиляции программы, написанной на компилируемом языке, создается выполняемый файл(В Windows — exe). Он выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она выполняется, должна иметь похожую конфигурацию. Например, если программа использует dll, то эта библиотека должна быть установлена и на целевой машине. Интерпретируемые программы компилируются в момент выполнения, поэтому они работают медленнее, но не зависят от конкретной машины. В .NET Framework применяется двухэтапная компиляция, то есть первый этап — это компиляция в MSIL, а вторая — компиляция «Just-in-time» компилятором во время исполнения. JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP.NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует. Если вы используете Visual Studio 2005, можно не ожидать первого запроса, а принудительно скомпилировать все страницы вашего проекта. Это позволит выявить синтаксические и другие ошибки.

MSIL — это ассемблер, не зависящий от машины. Он может выполняться на любой машине, где установлена CLR. Проект Mono пытается перенести CLR на другие платформы, позволяя взаимодействовать серверам, работающим на разных платформах.

Вы можете ознакомиться с проектом на сайте http://mono-project.com

На странице http://go-mono.com/archive/xsp-0.10.html находится XSP — сервер ASP.NET, который может служить расширением сервера Apache — основного сервера *nix — систем.

Как работает ASP.NET

Когда мы исталлируем .NET, в соответсвующих директориях C:WINDOWSMicrosoft.NETFramework помещается также файл aspnet_isapi.dll. Это — ISAPI-расширение, и предназначено оно для получения запросов, адресованных ASP.NET-приложениям (*.aspx *.asmx и т.д.), а также создания рабочих процессов aspnet_wp.exe, обратывающих запросы. Интернет-сервер — IIS или встроенный в WebMatrix или встроенный в Visual Studio Cassini — используют это расширение, когда им надо обработать обращение к страницам с расширением aspx.

Этот модуль разбирает(parse) содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Для понимания работы ASP.NET важно отметить, что каждому тегу элемента управления соответствует свой член класса страницы. Например,

Основная задача объекта Page — посылка HTML-код в выходной поток. Этот класс компилируется в библиотеку .dll, которая загружается в процесс веб-сервера. Последующие запросы к странице также обрабатывает dll, если исходный код страницы не меняется. Все эти файлы можно найти в директории «Temporary ASP.NET Files» текущей версии .NET. Если мы работаем в среде разработки Visual Studio 2005 или VWD, для каждого проекта создается своя поддиректория.

Типы страниц и папок проекта

В проект можно добавлять новые файлы через диалог New File. Если снять отметку с флажка «Place code in separate file», Visual Studio создаст один файл, в котором будет и страница, и код для ее обработки(в стиле WebMatrix).

Все файлы помещаются в директорию проекта. И наоборот, все файлы, которые будут помещены в директорию проекта, станут его частью. Для веб-сайтов не существует специального файла .csproj, в котором перечислялись бы его составные части, как это было в предыдущих версиях Visual Studio. Структура решения(solution) описывается в текстовом файле .sln. В решение могут входить несколько веб-сайтов и библиотек.

В ASP.NET 2.0 имеются специальные поддиректории проекта для разных типов файлов. Например, в папке App_Code хранятся общедоступные классы, текстовые файлы и некоторые другие(DataSet, диаграмма классов). Файлы с расширениями .cs или .vb, попавшие туда, автоматически компилируются, когда запрашивается любая страница проекта. В App_Data содержатся источники данных, используемых в проекте — базы данных Access и Microsoft SQL, XML-файлы. К этой директории нельзя получить доступ извне, а только из самого приложения. В папке Themes хранятся темы проекта(лекция 13). Применение тем позволяет настроить единообразный внешний вид сайта и централизованно им управлять. В App_GlobalResources находятся ресурсы, например таблицы строк, которые можно создавать на разных языках. Язык ресурсов выбирается автоматически в зависимости от настроек браузера пользователя. В папке App_WebReferences находятся ссылки на используемые веб-сервисы.

Можно создавать собственные поддиректории проекта, например, для хранения картинок.

Проект на 2 языках

Проект Web-сайта состоит из страниц aspx и классов, которые используются на страницах(и, конечно, разнообразных ресурсов). Файлы с классами, к которым можно обратиться из разных страниц, помещают в специальную папку App_Code. При компиляции они помещаются в одну сборку — библиотеку .dll в формате portable executable. Совершенно неважно, на каком языке написан класс, если это язык .NET.

Готовые скомпилированные сборки сторонних производителей тоже можно использовать в проекте. Их помещают в папку Bin. При этом их необходимо импортировать в проект.

Создайте новый проект. Добавьте в него файл, выбрав тип файла Class и язык Visual Basic. Среда сама предложит поместить его в папку Code. Назовем его CustomClass. У него будет очень простой код. Всего одна функция, которая добавляет слово Hello к имени, переданному в качестве параметра.

Добавьте в проект страницу CodeFolder_cs.aspx. Это страница написана на C#, но она создает класс, написанный на VB.NET.

На странице определена форма, напоминающая форму Windows-приложения. На ней имеется кнопка, нажатие на которую обрабатывается в функции Button1_Click. В ней создается класс и вызывается его функция GetMessage с параметром, который берется из элемента редактирования. Возвращаемое значение записывается в элемент Label1. В более простом варианте это выглядит так:

Класс может быть написан на C#, а использоваться из страницы на Visual Basic.

Однако поместить в директории App_Code можно только на одном языке. Если там будет находиться файлы на разных языках, проект не будет компилироваться. Для того, чтобы использовать два языка, необходимо создать поддиректорию, добавить ее в файле web.config и поместить в нее файлы на другом языке.

Регистрация в файле web.config:

Директивы

На каждой странице aspx обычно задаются директивы, с помощью которых Вы можете контролировать поведение страницы. Можно считать их языком, с которым вы общаетесь с компилятором, указывая ему, как обрабатывать данную страницу. Директивы обычно помещают в начале файла. Мы уже встречались с директивой Page в первой лекции.

Синтаскис объявления директив такой:

Можно объявить несколько директив одновременно:

Asp net html

Уже множество разработчиков, перейдя на ASP.NET, смогли убедиться в том, что новая платформа для разработки Web-приложений от Microsoft является наиболее мощной и гибкой из всех имеющихся на рынке. Очень удобна прозрачное использование серверных элементов управления, но, хотя набор стандартных элементов велик — есть даже календарь, иногда хочется сделать что-то свое.

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

Конечно, можно воспользоваться старым добрым Copy and Paste и сделать отдельный код на каждой странице, но представьте, что вы через некоторое время решили, например, изменить стиль списка новостей или, скажем, добавить поле «Автор». В этом случае придется менять код каждой копии.

В этом случае очень хочется чего-то вроде шаблона — параметризуемого куска HTML-кода, который (с соответствующими параметрами) можно было бы быстро вставить в любое место. Эта возможность реализуется в ASP.NET с помощью пользовательских элементов управления (user controls).

Пользовательский элемент управления как раз и является тем самым шаблоном, который можно вызывать в любом месте aspx- страницы. Его код тоже пишется на ASP.NET и хранится в .ascx — файле. Только его код не вставляется напрямую в код страницы, а создается html-код для элемента управления и уже он вставляется в html-код страницы при его генерации.

Простейший элемент управления

Для начала я предлагаю написать вместе простейший элемент управления. Для этого создайте новое web-приложение и в нем файл simple_control.ascx со следующим содержанием:

Вот и готов наш первый элемент управления — довольно просто. Теперь давайте попробуем использовать его в какой-нибудь .aspx — странице

Создадим страницу control_test.aspx со следующим кодом:

Открыв файл control_test.aspx в броузере, мы увидим следующее:

То есть, оно работает! Конечно, это простой пример, но и он может показать, насколько эффективными могут оказаться пользовательские элементы управления. Допустим, мы хотим «поздороваться» сразу с кучей людей и напишем для этого следующий код:

Результатом нашего труда станет коллективное поздравление:

А теперь мы вдруг захотели слово «Hello» покрасить в зеленый цвет, а имена — в красный. Для этого нужно всего лишь поменять код у элемента на следующий:

Если бы мы явно писали код для каждого вызова элемента, нам пришлось бы изрядно потрудиться. Конечно, можно сказать, что такой вопрос решается стилями, но, во-первых, если бы это не было предусмотрено заранее, все равно пришлось бы прописывать стили в каждой строчке, а во-вторых, это, конечно, простой пример.

Формат файлов пользовательских элементов управления

Файлы пользовательских элементов управления во многом похожи на файлы веб-форм. Но, конечно, есть отличия. В качестве основного декларативного тега используется тег @ Control. Все его параметры аналогичны параметрам тега @ Page, хотя многих параметров страницы он не имеет. Но мы опишем назначение наиболее часто используемых параметров тега @ Control:

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

Использование пользовательских элементов управления в ASP.NET страницах

Для использования пользовательского элемента в веб-форме, нужно сделать две вещи:

1) Зарагистрировать элемент.

Для этого есть специальный тег @ Register. Причем, есть два способа его использования — для регистрации сразу всех элементов, объявленных в некоторой сборке и индивидуальной регистрации. В первом случае синтаксис такой:

Он регистрирует все элементы, объявленные в пространстве имен пространство_имен сборки имя_сборки и сопоставляет им префикс префикc (что это значит, будет объяснено позже)

Этот способ удобен, когда есть целая библиотека элементов управления и из нее используется множество элементов. В случае же, когда предпочтительнее индивидуальная регистрация, пользуются следующим синтаксисом:

Эдесь тег сопоставляет элементу, описанному в файле исходник тег с именем тег и префиксом префикс.

Именно этот синтаксис был использован в нашем примере:

2) Использовать элемент

Для обращения к элементу используется формат тега

где префикс — это префикс, заданный в теге Register, а тег — это, в первом случае, имя класса, а во втором — заданное имя.

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

Конфигурирование пользовательских элементов управления

Пользовательские элементы управления ничего особого не стоили бы, если не было бы возможности настраивать их вывод в зависимости от ситуации. В нашем примере мы для каждого экземпляра настраивали имя, которое выводил элемент.

Для того, чтобы задать свойство пользовательского элемента управления, нужно (в простейшем случае) объявить общедоступное (public) поле. Например, в нашем случае мы объявили поле Name:

Затем это поле можно использовать в коде элемента как обычную переменную:

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

При чем свойства могут быть самых различных типов — от строковых, до временнЫх. Рассмотрим расширенную версию нашего элемента:

Ссылка на основную публикацию
Adblock
detector