
- •Начальное руководство по разработкеweb-приложений и asp.Net.
- •Разработка web-приложений и asp.Net
- •Web-приложения и web-серверы
- •Что такое виртуальные каталоги?
- •Структура документа html
- •Форматирование текста средствами html
- •Заголовки html
- •Html-редактор Visual Studio.Net
- •Разработка форм html
- •Создаем пользовательский интерфейс
- •Добавление изображений
- •Клиентские скрипты
- •Пример клиентского скрипта
- •Реализация проверки введенных пользователем данных
- •Передаем данные формы (методы geTиPost)
- •Синтаксис строки запроса http
- •Создание классической страницы asp
- •Принимаем данные, переданные методом post
- •Первое приложение asp.Net
- •Некоторые проблемы классических asp
- •Некоторые преимущества asp.Net
- •Пространства имен asp.Net
- •Наиболее важные типы пространства имен System.Web
- •Приложение и сеанс подключения пользователя
- •Создание простого web-приложения на с#
- •Исходный файл *.Aspx
- •Файл web.Config
- •Исходный файл Global.Asax
- •Простой код asp.Net на с#
- •Архитектура web-приложения asp.Net
- •Тип System.Web.Ui.Page
- •Связка *.Aspx/Codebehind
- •Свойство Page. Request
- •Свойство Page.Response
- •Свойство Page.Application
- •Отладка и трассировка приложений asp.Net
- •Элементы управления WebForm
- •Создание элементов управления WebForm
- •Иерархия классов элементов управления WebForm
- •Виды элементов управления WebForm
- •Базовые элементы управления WebForm
- •Группа переключателей
- •Текстовое поле для ввода нескольких строк с полосой прокрутки
- •Элементы управления с дополнительными возможности
- •Элемент управления Calendar
- •Элемент управления AdRotator (баннерная рулетка)
- •Элемент управления для работы с источниками данных
- •Элемент управления DataGrid
- •Еще немного об источниках данных
- •Элементы управления для проверки вводимых пользователем данных
- •Обработка событий элементов управления WebForm
- •Подведение итогов
- •Web-cлужбы
Элемент управления DataGrid
Одна из наиболее часто встречающихся задач в web-приложении — найти какие-то данные в источнике данных по запросу пользователя и вернуть их в табличном формате. В классических ASP это делалось путем создания объекта ADO Recordset и создания таблицы HTML «на лету» с использованием данных из этого объекта Recordset. Тех же самых результатов гораздо проще можно достичь при помощи элемента управления WebForm - DataGrid.
Рассмотрим применение DataGrid на примере. Предположим, что нам необходимо предоставить пользователю в ответ на его запрос данные из базы данных Cars (той самой, с которой мы работали в главе 13). Первое, что нам нужно сделать — создать обработчик для события Load нашей страницы. В нем мы установим соединение с базой данных, создадим и заполним объект DataSet и укажем его в качестве источника данных для элемента управления DataGri d. Соответствующий код С# может выглядеть так:
using System.Data.SQL;
protected void Page_Load(object sender, EventArgs e)
{
ifdlsPostBack)
{
// Помещаем в DataGrid данные из таблицы Inventory
SqlConnection sqlConn = new SqlConnectionO;
sqlConn.ConnectionString = "data source=.; initial catalog=Cars:
integrated security=sspi;"; SqlDataAdapter dsc = new SqlDataAdapter("Select * from Inventory",
sqlConn); DataSet ds = new DataSetO: dsc.FilKds, "Inventory"):
DataGridl.DataSource = ds.Tables["Inventory"].DefaultView; DataGridl.DataBindO; } }
Результат представлен на рис. 14.47.
Рис. 14.47. Элемент управления DataGrid с данными, полученными из SQL Server
Еще немного об источниках данных
Как мы только что убедились, выводить содержимое объекта DataTabl e при помощи элементов управления WebForm (например, DataGrid) можно легко и просто. Однако достаточно часто возникает необходимость выводить на web-странице данные, которые хранятся другими способами. И в элементах управления WebForm предусмотрена возможность делать это, то есть выводить данные, которые находятся в каком угодно виде.
Например, предположим, что мы столкнулись со следующей ситуацией: нам необходимо заполнить элемент управления ListBox данными, которые в настоящее время хранятся в обычном строковом массиве (такая потребность возникает очень часто). Заполнение ListBox данными из этого массива производится точно так же, как заполнение данными DataGrid из объекта DataTable в предыдущем примере. Все удивительно просто:
protected void Page_load(object sender. EventArgs e)
{
if(IIsPostBack)
{
// Создаем массив строковых значений - он нам нужен // для нашей демонстрации
string[] carPetNames - { "Viper". "Hank". "Ottis". "Alponzo". "Cage". "ТВ" }: // petNameList - это наш элемент управления ListBox на странице petNameList.DataSource - carPetNames; petNameList.DataBindO; } }
To, что должно получиться, представлено на рис. 14.48.
Рис. 14.48. Привязываем данные к элементам управления WebForm
Код приложения ASPData можно найти в подкаталоге Chapter 14.
Все массивы .NET происходят от единого общего предка — класса System. Array, а в классе System. Array реализован интерфейс IEnumerable. Мы говорим это к тому, что любой класс, в котором реализован этот интерфейс, может быть привязан к элементу управления WebForm (да и Windows Forms) в качестве источника данных. Например, если данные находились в объекте ArrayLi st, все будет точно так же:
protected void Page_load(object sender, EventArgs e)
{
ifdlsPostBack)
{
// Теперь виесто обычного массива у нас - объект ArrayList ArrayList carPetNames = new ArrayListO:
carPetNames.Add("Vi per"): carPetNames.Add("Otti s"); carPetNames. AddC'Alphonzo"): carPetNames.Add("Cage"); carPetNames.AddС"ТВ"); petNameList.DataSource = carPetNames; petNameLi st.DataBi nd(): } }
Результат, естественно, остался тем же самым.