- •Часть 2
- •2012 Часть 2-1. Создание и настройка приложения asp.Net
- •Упражнение 1 - Создание проекта веб-сайта и страницы
- •Упражнение 2: Добавление и программирование элементов управления
- •Упражнение 4: Работа с дополнительными элементами управления
- •Часть 2-2. Добавление кода к Web-форме Microsoft asp.Net.
- •Описание шагов выполнения работы
- •Ход выполнения работы
- •Результат работы программы
- •Часть 2-3. Создание элементов управления asp.Net и их использование
- •Ход выполнения работы
- •Часть 2-4. Создание элементов управления asp.Net и их использование
- •2.4.1 Создание пользовательских результатов трассировки
- •Ход выполнения лабораторной работы Упражнение 1 - Создание веб-узла на базе файловой системы
- •Упражнение 2. Использование трассировки для поиска ошибок
- •Упражнение 3 – отображение сведений трассировки в окне средства просмотра трассировки
- •Упражнение 4. Создание пользовательских результатов трассировки
- •Часть 2-5.Создание и использование пользовательских элементов управления
- •Ход выполнения лабораторной работы Упражнение 1 - Создание веб-узла
- •Упражнение 2. Создание пользовательского элемента управления
- •Упражнение 3 - Использование пользовательского элемента управления
- •Упражнение 4. Добавление пользовательских свойств и методов к пользовательскому элементу управления
- •Упражнение 5 - Тестирование свойств и метода пользовательского элемента управления
- •Часть 2-6.Доступ к данным с использованием Microsoft ado.Net Microsoft Visual Studio 2010
- •Ход выполнения работы Упражнение 1. Создание службы
- •Упражнение 2. Создание клиентского приложения
- •Упражнение 3 - Добавление возможностей фильтрации
- •Часть 2-7.Создание приложения asp.Net ajax
- •Упражнение 1 - Создание веб-узла asp.Net
- •Упражнение 2 - Добавление элемента управления UpdatePanel на веб-страницу asp.Net
- •Упражнение 3 - Добавление содержимого в элемент управления
- •Упражнение 4 - Добавление элемента управления UpdateProgress на страницу
- •Упражнение 5 - Добавление задержки в пример приложения
- •Часть 2-8. Использование Microsoft Silverlight для предоставления динамического контента
- •Упражнение 1 - Создание проекта Silverlight
- •Упражнение 2. Определение макета сетки
- •Упражнение 3 - Добавление кода
- •Упражнение 4 - Создание динамического макета
Упражнение 3 – отображение сведений трассировки в окне средства просмотра трассировки
В этом разделе лабораторной работы будет включена трассировка на уровне приложения
и использовано средство просмотра трассировки для проверки результата трассировки.
В режиме исходного кода в директиве @ Page удалили Trace="true".
Включили трассировку на уровне приложения.
В поле Адрес браузера введем URL-адрес сайта, указав trace.axd в качестве имени страницы, с которой осуществляется работа
Рис. 3. trace.axd
Упражнение 4. Создание пользовательских результатов трассировки
На странице, с которой осуществлялась работа, добавим в обработчик Page_Load следующий выделенный код:
void Page_Load(object sender, EventArgs e)
{
if(Request.Cookies["username"].Value != null)
{
labelName.Text = Request.Cookies["username"].Value;
}
Trace.TraceFinished += new
TraceContextEventHandler(this.TraceFinished);
if (Page.IsPostBack)
{
Trace.Write("debugging", "Page load (postback)");
}
else
{
Trace.Write("debugging", "Page load (first time)");
}
}
Создадим следующий метод для обработки событий TraceFinished:
void TraceFinished(object sender, TraceContextEventArgs e)
{
foreach(TraceContextRecord traceRecord in e.TraceRecords) {
if(traceRecord.Category == "debugging") {
Response.Write("<br>" + traceRecord.Message); } }
}
На этом этапе лабораторной работы выполняется настройка веб-узла таким образом,
чтобы включить трассировку всех страниц, но результаты трассировки направляются в
средство просмотра трассировки, а не на страницу.
Запустим нашу страницу
Листинг:
Упр. 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace PPP_lab4
{
public partial class SecondWebForm : System.Web.UI.Page
{
protected void ButtonDisplayName_Click(object sender, EventArgs e)
{
Label1.Text = Server.HtmlEncode(TextBox1.Text);
Response.Cookies["Username"].Value = Label1.Text;
}
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["Username"] != null)
{ Label1.Text = Request.Cookies["Username"].Value; }
}
}
}
Упр. 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace PPP_lab4
{
public partial class SecondWebForm : System.Web.UI.Page
{
protected void ButtonDisplayName_Click(object sender, EventArgs e)
{
Label1.Text = Server.HtmlEncode(TextBox1.Text);
Response.Cookies["Username"].Value = Label1.Text;
Trace.Warn("debugging","Start buttonDisplayName Click handler");
Label1.Text = Server.HtmlEncode(TextBox1.Text);
Response.Cookies["Username"].Value = Label1.Text;
Response.Cookies["Username"].Expires = DateTime.Now.AddMinutes(30);
Trace.Warn("debugging","end ButtonDisplayName Click handler");
}
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["Username"] != null)
{ Label1.Text = Request.Cookies["Username"].Value; }
}
}
}
Упр. 4
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class FirstWebPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["username"] != null)
{
labelName.Text = Request.Cookies["username"].Value;
}
Trace.TraceFinished += new
TraceContextEventHandler(this.TraceFinished);
if (Page.IsPostBack)
{
Trace.Write("debugging", "Page load (postback)"); }
else
{
Trace.Write("debugging", "Page load (first time)");
} }
void TraceFinished(object sender, TraceContextEventArgs e)
{
foreach (TraceContextRecord traceRecord in e.TraceRecords) {
if (traceRecord.Category == "debugging"){
Response.Write("<br>" + traceRecord.Message);
}}}
protected void buttonDisplayName_Click(Object sender, EventArgs e){
labelName.Text = Server.HtmlEncode(textName.Text);
Response.Cookies["username"].Value = labelName.Text;
Trace.Warn("debugging", "Start buttonDisplayName Click handler");
labelName.Text = Server.HtmlEncode(textName.Text);
Response.Cookies["username"].Value = labelName.Text;
Response.Cookies["username"].Expires = DateTime.Now.AddMinutes(30);
Trace.Warn("debugging", "End buttonDisplayName Click handler");
}}
FirstWebPage.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FirstWebPage.aspx.cs" Inherits="FirstWebPage" Trace="true"%>
<!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>
<asp:TextBox ID="textName" runat="server"></asp:TextBox>
<asp:Button ID="buttonDisplayName" runat="server" Text="отправить" OnClick = "buttonDisplayName_Click"/>
<asp:Label ID="labelName" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Результат выполнения программы:
Рис. 4. Итоговый результат
Вывод:
Выполнив данную лабораторную работу, мы познакомились с трассировкой, одним из способов поиска ошибок в программе. При трассировке отображаются сообщения о действиях, происходящих во время обработки страницы. Использовались разные способы трассировки (например, для поиска ошибок).