Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по дисциплине.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
63.5 Кб
Скачать

Лабораторная работа № 4

Задание: К созданному веб-приложению необходимо добавить веб-страницу *.aspx (страница ASP.NET). Затем необходимо в серверной части кода реализовать асинхронный метод и вызывать его с использованием технологий AJAX и PageMethods.

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

Варианты:

В соответствии с первой лабораторной работой.

Вспомогательный материал:

Для создания ASP.NET страницы необходимо кликнуть в «Обозревателе решений» на проекте правой кнопкой и в меню выбрать пункт «Создать новый элемент» и выбрать типа «Форма Web Form» с именем Default.aspx. При этом в корне веб-приложения будет размещено два файла – Default.aspx (в котором располагаются элементы интерфейса и клиентская часть кода на HTML-языке со вставками серверного кода ASP.NET) и Default.aspx.cs (серверная часть кода на языке C#). После создания в файле Default.aspx будет размещен код:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

</div>

</form>

</body>

</html>

В файле Default.aspx.cs код будет выглядеть следующим образом:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

В файле Default.aspx.c необходимо создать заготовку веб-метода в следующей форме (в разделе using необходимо подключить пространство имен «System.Web.Services»):

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.Services;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

public class tempclass

{

public string TempField { get; set; }

}

[WebMethod()]

public static object ExampleMethod()

{

tempclass t = new tempclass();

t.TempField = "Hello World";

return t;

}

}

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

В файле Default.aspx необходимо добавить ScriptManager (открыв Default.aspx в Visual Studio – можно увидеть слева – панель элементов, либо открыть ее через «Вид – Панель элементов», оттуда можно перетащить ScriptManager на страницу), обрабатывающий асинхронные AJAX запросы, после чего страница примет вид:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnableScriptLocalization="true" EnablePartialRendering="true" EnableScriptGlobalization="true" AsyncPostBackTimeout="999" runat="server">

</asp:ScriptManager>

<div>

</div>

</form>

</body>

</html>

Затем необходимо в коде добавить кнопку и дописать к ней код обращения к асинхронному методу. Для удобства работа с элементами HTML на клиентской стороне – подключим к проекту модули JQuery (необходимо скопировать папку JS из исходных данных в корень сайта):

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

<script src='js/jquery-1.10.2.min.js' type="text/javascript"></script>

<script src='js/jquery-ui-1.10.3.min.js' type="text/javascript"></script>

</head>

<body>

<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnableScriptLocalization="true" EnablePartialRendering="true" EnableScriptGlobalization="true" AsyncPostBackTimeout="999" runat="server">

</asp:ScriptManager>

<script type="text/javascript">

$(document).ready(function (e) {

$('#<%= Button1.ClientID %>').click(function (e) {

PageMethods.ExampleMethod(function (e) {

{

alert(e.TempField);

}

}, function (error) {

});

return false;

});

});

</script>

<div>

</div>

<asp:Button ID="Button1" runat="server" Text="Button" />

</form>

</body>

</html>

После нажатия на кнопку – должно отобразиться сообщение с текстом «Hello world».

При реализации лабораторной работы – во всплывающем сообщении должны отображаться значения полей какого-либо класса из варианта задания.

Изучить понятие JSON объектов, основы технологии JQuery.

Ресурсы:

Технология ASP.NET и PageMethods:

http://weblogs.asp.net/jalpeshpvadgama/page-methods-in-asp-net

http://weblogs.asp.net/jalpeshpvadgama/asp-net-page-methods-with-parameters

http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/calling-an-Asp-Net-C-Sharp-method-web-method-using-javascript/

Дополнительно. Пошаговое руководство. Создание и использование веб-службы с поддержкой AJAX: http://msdn.microsoft.com/ru-ru/library/bb532367(v=vs.90).aspx

JQuery для начинающих: http://anton.shevchuk.name/javascript/jquery-for-beginners/