Главная страница

Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5


Скачать 1.04 Mb.
НазваниеЛабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
АнкорНовые Лпр-ки
Дата19.03.2022
Размер1.04 Mb.
Формат файлаdocx
Имя файлаВеб ЛПР новые (1).docx
ТипЛабораторная работа
#403967
страница17 из 27
1   ...   13   14   15   16   17   18   19   20   ...   27

Упражнение 2. Отображение связанных данных в отдельном элементе управления


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

  1. Для создания заголовка (подписи) и элемента EntityDataSource для курсов добавьте следующий код разметки между элементом Label (сообщающий о возможных ошибках) и закрывающим тегом

:

Courses Taught



runat="server"

ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities" EnableFlattening="False"

EntitySetName="Courses"

Where="@PersonID IN (SELECT VALUE instructor.PersonID FROM it.People AS instructor)">



ControlID="InstructorsGridView" Type="Int32" Name="PersonID" PropertyName="SelectedValue" />





Параметр Where содержит значение PersonID инструктора выбираемой строки в элементе InstructorsGridView.

  1. Для создания элемента GridView добавьте следующий код разметки сразу после элемента CoursesEntityDataSource (до тега

):

DataSourceID="CoursesEntityDataSource"

AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray" DataKeyNames="CourseID">




No courses found.








HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />

HeaderText="Title" SortExpression="Title" />

SortExpression="DepartmentID">



runat="server" Text='<%# Eval("Department.Name")

%>'>










  1. Откройте страницу в обозревателе.

  2. Выделите любую строку с инструктором и проверьте, что внизу отображается информация о читаемом им курсе.

Элемент CoursesGridView показывает только несколько полей о курсе. Для отображения всей детальной информации о курсе можно использовать элемент DetailsView для курса, который выбрал пользователь.

  1. Добавьте следующий код разметки после закрывающего тега

:



Course Details



ID="CourseDetailsEntityDataSource" runat="server"

ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities"

EnableFlattening="False" EntitySetName="Courses"

AutoGenerateWhereClause="False" Where="it.CourseID

= @CourseID" Include="Department,OnlineCourse,OnsiteCourse,StudentGrades.Per son"
OnSelected="CourseDetailsEntityDataSource_Selected">



ControlID="CoursesGridView" Type="Int32" Name="CourseID" PropertyName="SelectedValue" />





AutoGenerateRows="False"

DataSourceID="CourseDetailsEntityDataSource">


No course selected.






HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />

HeaderText="Title" SortExpression="Title" />

HeaderText="Credits" SortExpression="Credits" />





ID="DetailsViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'>









runat="server" Text='<%# Eval("OnsiteCourse.Location")

%>'>










Text='<%# Eval("OnlineCourse.URL") %>'>











Этот код создает элемент EntityDataSource, который привязан к набору Courses. Свойство Where выбирает курс, используя значение CourseID выбранной строки в элементе GridView, отображающий курсы.

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

  1. В файле Instructors.aspx.cs создайте заглушеу для метода

CourseDetailsEntityDataSource_Selected protected void

CourseDetailsEntityDataSource_Selected(object sender,

EntityDataSourceSelectedEventArgs e)

{

}

  1. Откройте страницу в обозревателе.

  2. Выберите инструктора и затем выберите курс для просмотра подробной о нем информации.
1   ...   13   14   15   16   17   18   19   20   ...   27


написать администратору сайта