|
Программирование >> Программирование с использованием ajax
которая ссылается на элемент управления DropDownList. В файле ASPX идентификатору (ID) присвоено значение dropDownListEvents, поэтому переменная создается автоматически. Свойство SelectedValue возвращает текущий вариант выбора. Для элементов управления TextBox свойство Text возвращает строки, которые были введены пользователем: string selectedEvent = dropDownListEvents.SelectedValue; string firstName = textFirstName.Text; string lastName = textLastName.Text; string email = textEmail.Text; Метка labelResult снова имеет свойство Text, которому присваивается результат ввода: labelResult.Text = String.Format( {О} {1} selected the event {2} , firstName, lastName, selectedEvent); Вместо того чтобы отображать результаты на той же странице, ASP.NET позволяет без труда отобразить результаты на другой странице, как это показано в следующем практическом занятии. Отображение результатов на другой странице 1. Создайте новую форму WebForm и присвойте ей имя Results Page. aspx. 2. Добавьте метку в форму ResultsPage и присвойте ей имя labelResult. 3. Добавьте код метода Page Load в класс ResultsPage, как показано ниже: public partial class ResultsPage : System.Web.UI.Page { protected void Page Load(object sender, EventArgs e) { try { DropDownList dropDownListEvents = (DropDownList) PreviousPage. FindControl ( dropDownListEvents ) ; string selectedEvent = dropDownListEvents. SelectedValue; string firstName = ((TextBox) PreviousPage. FindControl ( textFirstName )) . Text; string lastName = ((TextBox) PreviousPage. FindControl ( textLastName )) .Text; string email = ((TextBox)PreviousPage.FindControl( textEmail )).Text; labelResult.Text = String.Format( {0} {1} selected the event {2} , firstName, lastName, selectedEvent); catch { labelResult.Text = The originating page must contain + textFirstName, textLastName, textEmail controls ; 4. Присвойте свойству PostbackUrl кнопки Submit страницы Default .aspx значение ResultsPage.aspx. Создание строго типизированного свойства PreviousPage 1. Создайте папку AppCode в Web-приложении, выбрав в окне Solution Explorer папку Web, а затем пункт меню Website Add FolderApp Code Folder (Web-caйт=> Добавить папку Папка App Code). 2. В окне Solution Explorer выберите папку App Code и добавьте новый файл с кодом С#, присвоив ему имя RegistrationInformation.cs, выбрав пункт меню Website=>Add New Item-CIass (Web-сайтДобавить новый элемент-Класс). 3. Реализуйте структуру Registrationlnformation в файле Registrationinf ormation. cs, как показано ниже: public struct Registrationlnformation { public string FirstName { get; set; } public string LastName { get; set; } 5. Обработчик события Click кнопки Submit можно удалить, поскольку он не требуется. 6. Откройте страницу Default. aspx, введите данные и щелкните на кнопке Submit. Вы перейдете на страницу ResultsPage. aspx, на которой будут отображены данные, введенные пользователем. Описание полученных результатов в ASP.NET элемент управления Button реализует свойство PostbackUrl, чтобы определить страницу, которая была запрошена на Web-сервере. Это свойство создает код JavaScript на стороне клиента для запроса определенной страницы посредством обработчика onclick кнопки Submit на стороне клиента: <input type= submit name= buttonSubmit value= Submit onclick= javascript:webForm DoPostBackWithOptions( new WebForm PostBackOptions("buttonSubmit", "", false, "", "ResultPage.aspx", false, false)) id= buttonSubmit /> Браузер посылает все данные из формы, содержащейся на первой странице, на новую страницу. Однако внутри новой запрошенной страницы необходимо получить данные из элементов управления, которые были определены на предыдущей странице. Чтобы получить доступ к элементам управления на предыдущей странице, класс Page определяет свойство PreviousPage. Это свойство возвращает объект Page, в котором доступ к элементам управления на этой странице может быть осуществлен посредством метода FindControl (). Метод FindControl () возвращает объект Control, поэтому вам придется привести возвращаемое значение к типу того элемента управления, поиск которого производится: DropDownList dropDownListEvents = (DropDownList)PreviousPage.FindControl( dropDownListEvents ); Вместо того чтобы использовать метод FindControl () для доступа к значениям на предыдущей странице, доступ к предыдущей странице может быть строго типизирован, что позволит свести к минимуму ошибки во время проектирования. Чтобы пойти этим путем, в следующем упражнении мы постараемся определить специальную структуру, возвращаемую посредством свойства класса def aultaspx. public string Email { get; set; } public string SelectedEvent { get; set; } 4. Добавьте общедоступное свойство Registrationinformation в класс Default в файле Default. aspx. cs: public Registrationlnformation Registrationinformation { return new Registrationinformation () { FirstName = textFirstName.Text, LastName = textLastName.Text, Email = textEmail.Text, SelectedEvent = dropDownListEvents.SelectedValue 5. Добавьте директиву PreviousPageType в файл ResultPage. aspx после директивы Page: < %@ Page Language= C# AutoEventWireup= true CodeFile= ResultPage.aspx.cs Inherits= ResultPage aspx % > < %@ PreviousPageType VirtualPath= -/Default.aspx % > 6. Теперь можно упростить код в методе PageLoad () класса ResultsPage: protected void Page Load(object sender, EventArgs e) Registrationlnformation ri = PreviousPage .Registrationlnformation; labelResult.Text = String.Format( {0) {1} selected the event {2} , ri.FirstName, ri.LastName, ri.SelectedEvent); catch labelResult.Text = The originating page must contain + textFirstName, textLastName, textEmail controls ; Проверка данных, вводимых пользователем Когда пользователь вводит данные, их необходимо проверить, удостоверившись, что они являются допустимыми. Такую проверку можно выполнять как на стороне клиента, так и на стороне сервера. Проверка данных на стороне клиента может быть выполнена с помощью кода JavaScript. Однако в этом случае их необходимо проверять также и на сервере, поскольку ни одному из клиентов нельзя доверять полностью. Можно запретить выполнение кода JavaScript в браузере, хотя хакеры смогут воспользоваться другими функциями JavaScript, которые принимают неправильно введенные данные. Данные на сервере необходимо проверять обязательно. Проверка данных на стороне клиента позволяет повысить производительность, поскольку в этом случае отпадает необходимость повторно обращаться на сервер.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |