1. Построение приложений с привязанными данными в Windows Forms

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

он наилучшим образом подходит для

Этому новому элементу управления специально посвящена глава 6. Он наилучшим образом подходит для представления разнообразных табличных данных в приложениях Windows Forms. Он обеспечивает простые в использовании механизмы привязки данных и возможности для настройки внешнего вида, работы с большими наборами данных, включения несвязанных столбцов, а также многие другие развитые функции. Одной из проблем при абсолютном позиционировании является то, что если разрешить пользователю изменять размер формы, элементы управления просто будут оставаться на том же месте. Но если вы собираетесь разрешить пользователю менять размер формы, то обычно захотите, чтобы находящиеся на ней элементы управления каким-то разумным образом приспосабливались к новым размерам формы, изменяя либо свое положение, либо свой размер, либо и то и другое. В Windows Forms этого можно было бы достичь тем же способом, что и в большинстве прежних приложений Windows: вы могли бы перехватывать события, связанные с изменением размера формы, в ручную производить вычисления, исходя из нового размера формы, а затем явным образом устанавливать положение и размер элементов управления значениями, соответствующими новым размерам формы. Однако написание такого рода кода очень утомительно и подвержено ошибкам, и в большинстве случаев существуют некоторые стандартные формы поведения, которым могли бы следовать ваши элементы управления для изменения своего положения и размера. Такие стандартные формы поведения были инкапсулированы в качестве встроенных возможностей Windows Forms посредством свойств Anchor И Dock.

Привязка данных в ASP. NET

windows forms идеально подходит для

Многие разработчики сталкиваются с непростой задачей построения пользовательских интерфейсов, использующих одновременно Windows Forms и ASP. NET. Windows Forms идеально подходит для создания наиболее насыщенного, высоко интерактивного прикладного интерфейса. Однако для развертывания приложений Windows Forms необходим определенный контроль над конфигурацией компьютера клиента, и в некоторых приложениях вам придется иметь дело с пользователями, имеющими нестандартную или недоступную для управления конфигурацию. Вместо того, чтобы обеднять весь UI, вы могли бы с помощью Windows Forms предоставить богатый интерфейс пользователям, которые находятся внутри брандмауэра вашей корпоративной сети, а если потребуется открыть некоторые из функциональных возможностей более широкой аудитории в сети Internet, где у вас нет контроля над программной конфигурацией клиентских машин, то в качестве платформы для разработки пользовательского Web-интерфейса целесообразно воспользоваться ASP. NET. Если вы хорошо спроектировали архитектуру своего приложения, экспонирование пользовательского Web-интерфейса не обязательно означает дублирование всего приложения. При правильном членении логики приложения и многослойной архитектуре доступа к данным вам достаточно будет уделить внимание в основном присоединению нового UI, а именно Web UI, построенного с помощью ASP. NET. В такой ситуации вам часто нужно будет реализовывать пользовательские интерфейсы, привязанные к данным, подобные тем, что вы построили для своего приложения Windows Forms, максимально утилизируя его рабочую логику и код доступа к данным.

Использование конструктора для определения сетки

элемент управления b datagridview b

Теперь, когда вы понимаете, как кодируются наиболее распространенные применения сеток, давайте посмотрим, как можно избежать написания всего этого кода вручную. Элемент управления DataGridView Поддерживает богатые возможности работы в конструкторе Visual Studio, обеспечиваемые при комбинированном использовании его контекстных вкладок, диалогов и окна Properties. Для начинающих заметим, что если вы определили в своем проекте источник данных, то можете просто перетащить источник коллекции данных, подобно таблице, в конструктор форм, и в результате будет создан экземпляр DataGridView Со всеми необходимыми объектами поддержки. Кроме того, определения столбцов, генерированные исходя из свойств источника данных, позволяют вам устанавливать с помощью конструктора другие свойства, такие, как AutoSizeMode. Если вы выберете сетку и вызовете на экран ее контекстную вкладку, как показано на рис. 6.3, то можете модифицировать в ней самые распространенные характеристики внешнего вида и поведения сетки. Выпадающий список Choose Data Source тображает окно выбора источников данных, сходное с описанным в главе 5 для окна Properties. В нем представлены только те источники, которые реализуют интерфейс IList И, следовательно, подходят для привязки к сетке. Ссылки Edit Columns и Add Column отображают диалоги, позволяющие определять столбцы, которые будет содержать сетка.

Диалог Edit Columns позволяет добавлять и удалять столбцы, задавать порядок столбцов в сетке и устанавливать все свойства времени разработки для уже определенного столбца, на котором сфокусирован диалог. Показываемые в диалоге свойства будут зависеть от того, является ли столбец привязанным или несвязанным, и будут показаны дополнительные свойства, зависящие от типа столбца и типа ячейки. Если вы определяете свои собственные типы столбцов и включаете их в свой проект, они появятся в качестве опций для вновь создаваемых столбцов или для конфигурации столбцов в этом диалоге.

Элемент управления SqlData Source

при добавлении к странице объекта

Элемент управления SqlDataSource Предназначен для исполнения запросов к базе данных на SQL Server для извлечения и обновления данных через привязанные элементы управления. При добавлении к странице объекта SqlDataSource Вы устанавливаете его свойства ConnectionString И ProviderName, Чтобы указать, с чем он должен соединяться. Затем вы записываете В Его свойствах SelectCommand, InsertCommand, UpdateCommand И DeleteCommand Операторы SQL или имена сохраняемых процедур, которые должны исполняться при извлечении или обновлении данных. Каждая команда может иметь набор дочерних объектов Parameter, Идентифицирующих параметры в запросах или сохраняемых процедурах вместе с их типами. Когда происходит привязка к данным, автоматически исполняется SelectCommand Для извлечения и представления данных в виде коллекции, доступной для любых привязанных элементов управления. Кроме того, элемент управления источника данных экспонирует запросы вставки, обновления и удаления через стандартный интерфейс, который известен всем привязанным элементам управления и может использоваться ими для закрепления изменений, возвращаемых источнику данных посредством отсылки, для чего не требуется никакого программного кода. Простейший способ ознакомиться с кодом, необходимым для работы с SqlDataSource — это разрешить конструктору Visual Studio написать его за вас. поверхность конструктора Web-страницы. После того, как вы проделаете эти шаги, Visual Studio добавит к вашей странице элементы управления GridView И SqlDataSource, Заполнит их всей необходимой информацией для извлечения данных из таблицы Customers и представит их в сетке — вам не потребуется написать ни строчки кода. Если вы сейчас посмотрите на ваш код поддержки, то увидите, что там все

Свойства DataBindings в окне Properties

здесь вы можете выбрать для

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

Можно также щелкнуть на подсвойстве, при этом появится кнопка с многоточием. Когда вы щелкнете на этой кнопке, откроется диалог Formatting and Advanced Binding. При помощи этого диалога можно настроить текущую привязку или же добавить другие привязки этого элемента управления для других свойств. Выпадающий список Binding в середине диалога позволяет выбрать компонент данных для привязки в таком же окне, как то, что используется для свойства DataMember В окне Properties. Выпадающий список Data Source Update Mode позволяет выбрать момент, когда происходит форматирование; здесь используются те же значения из перечисления DataSourceUpdateMode, Что были описаны в таблице 4.3 при обсуждении автоматического форматирования с использованием класса Binding. В зависимости от типа компонента данных, выбранного в выпадающем списке Binding, вы можете выбрать тип форматирования в списке в середине нижней части диалога, наряду с соответствующим типом из списка справа. Это по существу установка строки форматирования обработчика формата для типа выбранного компонента данных. Наконец, вы можете ввести значение в текстовое поле Null Value, Которое будет использоваться, если значением компонента данных во время выполнения является Null Или DBNull.

В конечном счете все эти установки являются еще одним способом передать информацию для функций автоматического форматирования класса Binding, Который подробно обсуждался в главе 4. Когда вы нажатием кнопки ОК принимаете какие-либо изменения, сделанные в этом диалоге, в файл кода конструктора добавляется код для создания соответствующих объектов Binding, И для этих привязок необходимо установить соответствующие свойства форматирования, прежде чем вы добавите их в коллекцию DataBindings Элемента