Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
Скачать 1.04 Mb.
|
Лабораторная работа 5. Работа со связанными данными (продолжение)В предыдущей работе вы начали использовать элемент EntityDataSource для работы со связанными данными. В этой работе вы продолжите работать со связанными данными путем добавления и удаления отношения и добавления нового объекта, который имеет отношение к существующему объекту. Вы создадите страницу, которая добавляет курсы, распределенные по кафедрам. Кафедры уже существуют, и, когда вы создаете новый курс, в то же время вы будете устанавливать отношения между ним и существующей кафедрой. Вы также создадите страницу, которая работает с отношением многие- ко-многим, назначая инструктора курса (добавление отношения между двумя сущностями, которые вы выберите) или удаление инструктора из курса (удаление отношения между двумя сущностями). В базе данных, добавив, отношения между преподавателем и курсом в новой строке добавляется к таблице ассоциации CourseInstructor; удаление отношения включает в себя удаление строки из таблицы ассоциации CourseInstructor. В Entity Framework, настроив свойства навигации, это делается без явного обращения к таблице CourseInstructor. Упражнение 1. Добавление сущности с отношением к другой сущностиСоздайте новую страницу CoursesAdd.aspx, которая основана на мастер странице Site.Masterи добавьте код разметки элемента Content с именем Content2: Add CoursesConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities" EnableFlattening="False" EntitySetName="Courses" EnableInsert="True" EnableDelete="True" > DataSourceID="CoursesEntityDataSource" DataKeyNames="CourseID" DefaultMode="Insert" oniteminserting="CoursesDetailsView_ItemInserting"> DefaultContainerName="SchoolEntities" EnableDelete="True" EnableFlattening="False" EntitySetName="Departments" EntityTypeFilter="Department"> DataTextField="Name" DataValueField="DepartmentID" oninit="DepartmentsDropDownList_Init"> Этот код разметки создает элемент EntityDataSource, который выбирает курсы и позволяет добавить строки. Вы будете использовать обработчик события вставки, чтобы обновить свойство навигации Department, когда новый курс будет создан. Далее создается элемент DetailsView для добавления новых объектов Course. Используются связанные поля для свойств Course. Вы будете должны ввести значение CourseID, потому что это поле не генерируется системой. В файле CoursesAdd.aspx.csпосле объявления класса добавьте поле класса, ссылающееся на элемент DepartmentsDropDownList: private DropDownList departmentDropDownList; Далее добавьте обработчик события Init элемента DepartmentsDropDownList в котором сохраните ссылку на элемент управления. protected void DepartmentsDropDownList_Init(object sender, EventArgs e) { departmentDropDownList = sender as DropDownList; } Добавьте обработчик события Inserting элемента DetailsView: protected void CoursesDetailsView_ItemInserting(object sender, DetailsViewInsertEventArgs e) { var departmentID = Convert.ToInt32(departmentDropDownList.SelectedValue); e.Values["DepartmentID"] = departmentID; } Когда пользователь нажимает Insert, то событие Inserting вызывается, прежде чем будет вставлена новая запись. Обработчик получает DepartmentID от элемента DropDownList и использует его, чтобы установить значение, которое будет использоваться для свойства DepartmentID сущности Course. Запустите страницу CoursesAdd.aspxвобозревателе. Введите ID, название и количество кредита и выберите кафедру, затем кликните Insert (Вставка). Откройте страницу Courses.aspxи выберите кафедру, ведущую новый курс. Проверьте, что новый курс успешно добавлен. |