Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Я недавно начал использовать ASP.NET. Подскажите как можно организовать переход на страницу(пока что использую Response.Redirect(url))? Также можете подсказать как передавать данные на новую страницу -- пока что использую Cookies, но они позволяют передавать только текст, а как можно передать что-то свое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 18:56 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
1. Session() - любой объект Session("MyDataTable")=mydatatable 2. request.querystring mypage.aspx?uid=1 request.querystring("UID") ..... куки для передачи - это уже экстрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 19:05 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Вот способ hDrummer-а, взятый из 1-го номера его журнала "Алгоритм". (hDrummer это известный учёный) Вместо Response.Redirect используй Server.Transfer - иначе жди проблем из-за кеширования сессионных переменных. Ну а переменные через сессию передавай: Session["переменная"]="значение"; Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 19:07 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Я бы рекомендовал набрать в Гугле : Response.Redirect vs Server.Transfer Посмотри, в чём разница и так будешь знать что выбрать в каждом конкретном случае . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 12:57 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Ответ на вопрос №1: Разработка Web-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET Официальное пособие Microsoft для самостоятельной подготовки Москва, 2003 стр 164 - 171 Занятие 3. Переход между формами Данные, связанные ссылками, — это сущность Web. В Web Forms гиперссылки и методы перехода являются тем «цементом», который связывает Web-формы в единое приложе- ние. ASP.NET поддерживает несколько способов перехода между страницами в приложе- ниях, отличающихся методикой отображения и обмена данными между страницами. На этом занятии вы узнаете об использовании различных способов перехода между страницами в коде и HTML. Изучив материал этого занятия, вы сможете: J перечислить способы перехода между страницами в приложении Web Forms; S выбрать метод перехода, соответствующий задаче программирования; S сохранять состояние отображения формы между запросами; S обрабатывать вторую \№Ь-форму, не покидая текущую Web-форму; S отображать страницу в новом окне браузера и управлять новым окном из серверного кода. Продолжительность занятия — около 35 минут. Методы перехода между страницами ASP.NET поддерживает пять различных способов перехода между страницами в при- ложениях (таблица 4-8). Таблица 4-8. Способы перехода между страницами Способ перехода Назначение Элемент управления Hyperlink Переход на другую страницу Метод Response.Redirect Переход на другую страницу в коде, эквивалент щелчка гиперссылки Метод Server. Transfer Закрывает текущую Web-форму и начинает исполнение другой Web-формы. Работает только при переходе между страницами Web Forms (.aspx) Метод Server.Execute Начинает исполнение новой Web-формы, не закрывая текущую, при этом содержимое обеих форм объеди- няется. Работает только при переходе между страницами Web Forms {.aspx) Сценарий Window.Open Открывает страницу на клиенте в новом окне браузера Использование гиперссылок и перенаправления Серверный элемент управления Hyperlink отвечает на инициированное пользователем со- бытие click отображением страницы, заданной его свойством NavigateURL. Элемент уп- равления Hyperlink не поддерживает никаких пользовательских событий на стороне сер- вера. Для обработки события click в коде воспользуйтесь серверными элементами управ- ления LinkButton или ImageButton. Объекты LinkButton и ImageButton выполняют переход при помощи метода Redirect объекта Response: Visual Basic .NET Private Sub LinkBjtton1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles LinkButtonl. Click Отобразить следующую страницу. Response. Redirect ( "NextPage.aspx") End Sub Visual C# private voic LinkButton1_Click(object sender. System. EventArgs e) { // Отобразить следующую страницу. Response. Redirect ("NextPage.aspx"); Использование метода Transfer Применение метола Transfer весьма напоминает обработку гиперссылки или использова- ние метода Redirect за исключением того, что метод Transfer может сохранять между зап- росами некоторые данные исходной страницы. Если установить его аргумент preserveForm в True, то свойства формы QueryString, VlewState и сведения об обработчиках события теку- щей формы станут доступными из целевой формы. Прежде чем вызывать метод Transfer со свойством preserve Form, установленным в True, необходимо присвоить значение False атрибуту EnableView State Mac страничной директивы Page. По умолчанию ASP.NET хеширует данные состояния отображения. Если атрибут EnableView Smte Mac определен как False, то хеширование не выполняется и данные состо- яния отображения могут быть прочитаны после перехода на другую Web-форму, Следую- щий код демонстрирует, как отменить хеширование и сделать состояние отображения до- ступным после перехода на другую страницу: Visual Basic .NET <%@ Page language="vb" EnableViewStateMac-"false" Codebehind="RedirectNTransfer.aspx. vb" Inherits="vbNavigateSnippet.WebForm1" %> Visual C# <%@ Page lariguage="c#" EnableViewStateMac="false" Codebehind="RedirectNTransfer. aspx. cs" AutoEventWireup=" false" Inherits-"csNavigateSnippet.WebForrn1" %> Следующий обработчик события ImageButton демонстрирует передачу данных между формами с помощью метода Transfer Visual Basic .NET 1 Webforml.aspx Private Sub imgTransfer_Click(ByVal sender As System. Object, ByVal e As System. Web. UI.ImageClickEventArgs) Handles imgTransfer. Click 7-531 "186 Создание пользовательского интерфейса Глава 4 Перейти на другую Web-форму, сохранив состояние отображения. Server.Transfer("Webform2.aspx", True) End Sub Visual C# // Webforml.aspx private void ImageButton1_Click{object sender, System.Web.UI.ImageClickEventArgs e) { // Перейти на другую Web-форму, сохранив состояние отображения. Server. Transfer("Webf о rm.2. aspx", trje): } Для извлечения данных из состояния отображения исходной страницы используется метод Form объекта Request. Следующий код отображает на форме Webform2.aspx значе- ния элементов управления (значение Text Box, а также координаты X и Y щелчка Image- Button), принадлежащих форме Webforml.aspx. Visual Basic .NET ' Webform2.aspx Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Loac Dim colForm As System.Collections.Specialized.NameValueCollection Получить данные из исходной Web-формы. colForm = Request.Form Отобразить значение поля, принадлежащего Webforml. Response.Write("TextBox1.Text: " & colForm.Item(""extBox1") & "<br>") 1 Отобразить координаты щелчка. Response.WriteC'ImageButton X, Y coords: " & colForm.ItemC'imgTransfer.x") & ", " & colForm.ItemC'imgTransfer.y") & "<br>") End Sub Visual C# // Webform2.aspx private void Page_Load(object sender, System.EventArgs e) { System.Collections.Specialized.NameValueCollection colForm; // Получить данные из исходной Web-формы. colForm = Request.Form; // Отобразить значение поля, принадлежащего Webforml. Response.Write("TextBox1,Text: " + colForm["TextBox1"] + "<br>"); // Отобразить координаты щелчка. Response.Write("ImageButton X, Y coords: " + co!Form["imgTransfer x"] + ", " •*- co!Form["iingTransfer.у"] + "<br>") Метода Transfer объекта Server позволяет передавать значения элементов упраршения между последовательными запросами (рис. 4-20). I г.-.и : •••'• '. 'f .1., -..,..[. '<.-. .!>- r.^.r, ||Ь,„, --^ ----- ... --- -- .. ^o,4.--1,-^wMraawb4»t«Mp»Wlvl™vig»cninci)ilrTrm!fe..eB. pfriis is'swn'rTlaitt' TEC Has и somr tea ImagcButton X. Y cowds 14. 86 Destination Form Рис, 4-20, Работа метода Transfer объекта Server Примечание Методы Transfer и Execute объекта Server работают исключительно с Web- формами. Попытка использования этих методов для перехода на HTML-страницу приведет к ошибке времени выполнения. Использование метода Execute Метод Execute объекта Server позволяет обрабатывать вторую Web-форму, не покидня пер- вую. Таким образом, при помощи этого метода удается направлять результаты обработки одной Web-формы в определенную область другой формы. Как и в случае Transfer, перед вызовом метода Execute необходимо установить атрибут EnableViewStateMac в False, чтобы отменить хеширование состояние отображения. Следующий код исполняет Web-форму Table.aspx и отображает результаты на текущей странице при помощи элемента управления Literal: Visual Basic .NET Private Sub butExecute_Click(8yVal sender As System.Object, ByVal e As System.EventArgs) Handles butExecute.Click Dim swrTarget As New System.10.StringWriter() 1 Обработать Web-форму и сохранить результат. Server,Execute("Table.aspx", swrTarget) ' Отобразить результат с помощью элемента управления Literal. litTable.Text = "<h2>Table Res;ults</h2>" & swrTarget.ToString End Sub Visual C# private void butExecute_Click(object sender, System. EventArgs e) { System. 10. St'ingWriter swrTarget - new System. 10. StringWriter(); // Обработать Web-форму и сохранить результат. Server. Execute ( "Table. aspx", swrTarget); // Отобразить результат с помощью элемента управления Literal. litTarget.Text = "<h2>Table Results</h2>" + swrTarget. ToStringO; Второй аргумент метода Execute является необязательным. Если опустить его, резуль- тат обработки Web-формы будет направлен на текущую страницу. В результате содержи- мое страниц объединяется, а их серверные элементы управления могут реагировать на события, инициированные пользователем (рис. 4-21). Объединяя Web-формы с помощью метода Execute, не забывайте вот о чем: если вторая Web-форма генерирует событие postback, то первая Web-форма будет очищена. Поэтому объединение Web-форм полезно, главным образом, при отсутствии на второй Web-форме элементов управления, вызывающих возврат страницы. . . . . . . . . Рис. 4-21. Работа метода Execute объекта Server Отображение страницы в новом окне браузера Для запуска нового экземпляра браузера предназначен метод Open клиентского объекта Window. Поскольку новое окно генерируется на стороне клиента, его удается создать толь- ко при помощи клиентского сценария, но его содержимым и внешним видом допустимо управлять и с сервера. Следующее определение HTML-элемента управления Button демонстрирует простей- ший вариант использования метода Window.Open (см. строку, выделенную полужирным шрифтом): <INPUT style="Z-INDEX: 102; LEFT: 55px; WIDTH: 81px; POSITION: absolute; TOP: 156px; HEIGHT: 24px" onclick="wirdow.open( 'webform2.aspx')" type="sut)rnit" value="New Window"> Чтобы получить возможность задавать целевой URL с помощью переменной, замени- те webform2.aspx следующим тегом: <INPUT style="Z-INDEX: 102; LEFT: 55px; WIDTH: 81px; POSITION: absolute; TOP: 156px; HEIGHT: 24px" onclick="window.open( '<%# urlTarget %> )" type="submit" value="New Window"> Чтобы серверный код получил возможность обновлять целевой URL, используйте от- крытую (Public) переменную и привязку данных. Следующий обработчик события Page_Load задает целевой URL и во время загрузки страницы обновляет его с использованием свя- занных данных: Visual Basic .NET Public urlTarget As String Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load urlTarget = "webform2.aspx" Page.OataBindO End Sub Visual C# public string urlTarget; private void Page_Load(object sender, System.EventArgs e) < urlTarget - "webform2.aspx"; Page.DataBindO; } Поскольку метод Window.Open поддерживает множество аргументов, управляющих раз- личными функциями новых окон браузера, для управления ими можно создать класс. Классы инкапсулируют всевозможные параметры, облегчая управлением ими в ООП. Обработчик события Page_Load и определение класса, показанные ниже, демонстрируют управление размерами, размещением и URL нового окна из серверного кода с использо- ванием класса Browser Window: Visual Basic .NET Public urlTarget As New BrowserWindowO Private Sub Page_Load(ByVal sender As System.Object, _ Создание пользовательского интерфейса Глава 4 ByVal e As System.EventArgs} Handles MyBase.Load With urlTarget ' Задать URL для нового окна. .URL = "HTMLPage1.htm" .Top - 100 .Left = 100 .Width - 400 .Height = 400 End With 1 Обновить HTML-кнопку. Page.DataBindO End Sub Это класс, управляющий новыми окнами браузера, создаваемыми при помощи сценариев, Показанные здесь настройки по умолчанию совпадают с таковыми браузера, Public Class Browser-Window Строка адреса по умолчанию пуста (blank). Public URL As String = "aboutiblank" Целочисленные аргументы по умолчанию равны 0. Public Height As Integer = 0 Public Width As Integer = 0 Public Top As Integer = 0 Public Left As Integer = 0 Аргументы типа булевых, 0 = "нет": 1 = "да", Public ChannelMode As Integer = О Public Directories As Integer = 1 Public FullScreen As Integer = 0 Public Location As Integer = 'I Public Resizable As Integer - 1 Public ScrollBars As Integer -= 1 Public Status As Integer = 1 Public TitleBar As Integer = 1 Public ToolBar As Integer = 1 Public MenuBar As Integer - 1 End Class Visual C# public BrowserWindow urlTarget = new BrowserWindowO; private void Page_Load(object sender, System.EventArgs e) { jrlTarget.URL = "Execute.aspx"; urlTarget,Top - 100; urlTarget,Left = 100; urlTarget.Width = 400; urlTarget.Height = 400; // Это класс, управляющий новыми окнами браузера, создаваемыми // при помощи сценариев. // Показанные здесь настройки по умолчанию совпадают с таковыми браузера, public class BrowserWindow { // Строка адреса по умолчанию пуста (blank). public string URL = "about:blank"; // Целочисленные аргументы по умолчанию равны 0. public int Height = 0; public int Width - 0; public int Top = 0; public int Left - 0; // Аргументы типа булевых, 0 - "нет"; 1 - "да", public int CnannelMode - 0: oublic int Directories = 1; public int FullScreen = 0; public int Location = 1; public int Resizable - 1; oublic int ScrollBars = 1; public int Status - 1; public int TitleBar = 1; public int ToolBar = 1: public int MenuBar = 1; } HTML-код кнопки, берущий параметры нового окна из экземпляра показанного выше класса, выглядит примерно так (переменные, предоставляемые сервером, выделены полу- жирным шрифтом): <INPUT style="Z-INDEX: 103; LEFT: 25px; WIDTH: Т26рх; POSITION: absolute; TOP: 60px; HEIGHT: ЗЗрх" type="button" value="Show New Window" onclick-"window.open('<%# urlTarget.URL %>', null, %# urlTarget.Height %>, urlTarget.Width %>, top=<%# urlTarget.Top %>, left=<%# urlTarget.Left %>, channelmode=<%# urlTarget.ChannelMode %>, directories=<%# urlTarget.Directories %>, fullscreen=<%# urlTarget.FullScreen %>, location-<%fl urlTarget.Location %>, тепиЬаг=<%# urlTarget.MenuBar 56>, resizable=<%# urlTarget.Resizable %>, scrollbars=<%# urlTarget.ScrollBars %>, status=<%# urlTarget.Status %>, titlebar=<%# urlTarget.TitleBar %>, toolbar=<%# urlTarget.ToolBar %>')"> Ответ на вопрос № 2: Абсолютно согласен с big-duke ... big-duke 1. Session() - любой объект Session("MyDataTable")=mydatatable 2. request.querystring mypage.aspx?uid=1 request.querystring("UID") P.S. Извиняюсь, что №1 - так не разборчиво - лень чистить почле .pdf Будут вопросы - кричи ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 21:50 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Хочу вставить свои "пять копеек" и получить хотя бы "три" :-) Есть две странички, допустим, a.aspx и b.aspx. В реализации Page_Load страницы a.aspx есть такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. адреса браузера (IE) после перехода (по сабмиту формы) отображается http://.../b.aspx, а если же использовать Server.Transfer("b.aspx") -- остается все тот же http://.../а.aspx. Неужели так и должно происходить? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 12:10 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Так и должно быть, ибо по работа формы a.aspx не прерывается при переходе на b.aspx. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:27 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Axeleron ....работа формы a.aspx не прерывается при переходе на b.aspx. А как же тогда следующее: .NET Framework Class Library HttpServerUtility.Transfer Method Terminates execution of the current page and begins execution of a new page for the current request. Может дополнительно чего-то сделать нужно с самим запросом (request)? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:57 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
выдержка из постаПрименение метола Transfer весьма напоминает обработку гиперссылки или использование метода Redirect за исключением того, что метод Transfer может сохранять между запросами некоторые данные исходной страницы. Если установить его аргумент preserveForm в True, то свойства формы QueryString, VlewState и сведения об обработчиках события текущей формы станут доступными из целевой формы. ну типо читаем оп русски... или не читаем... как душе угодно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 14:43 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
2 vladgrig Так как последним спрашивал я, то решил что Ваш пост адресован мне... Не сомневайтесь, с Вашим предыдущим постом я ознакомился. Но мой вопрос заключается в следующем: почему при использовании Server.Transfer адрес броузере остается прежним, да и поведение форм достаточно сомнительное (по сабмиту целевой формы возвращаюсь к первой)... может я его не совсем корректно использую? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 15:26 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Всё верно, после сабмита вы возвращаетесь к предыдущей. Server.Transfer и очень удобен для того, чтобы что-то сделать на вызванной странице, а затем вернуться к вызывающей, не потеряв при этом viewstate оной. Более того этот метод может работать быстрее чем Response.Redirect. Неудобство - не всегда хочется, после постбэка возвращаться к вызывающей форме, хотя можно решить и эту проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 15:43 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
авторможет я его не совсем корректно использую? не исключаю такой возможности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 15:49 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Ну, если возвращает по сабмиту целевой формы к начальной, чего ж этим не воспользоваться?!... Изменил немного структуру: установил страничку b.aspx стартовой (base), при загрузке которой проверяю наличие переменной сессии - если таковой нет -- Server.Transfer("a.aspx") (authorization), при постбэке которой и формируется эта переменная... Итак, запускаю проект... загружается страничка b... переменная не найдена... загружается страничка a... вводим значения полей, нажимаем Enter, по которому <INPUT type="image"> инициализирует сабмит формы... Но после ее сабмита управление страничке b не возвращается, а в адресной строке браузера появляется "http://.../a.aspx"! Это как понимать?! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 16:42 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
А почему и нет? Вы же не перешли на страницу c.aspx. Так что всё верно, хоть запостбэчься на b.aspx, а всё равно хранится информация о старнице, с которой пришёл (a.aspx), и потому видимое название страницы a.aspx - как бы указывает на ту страницу откуда пришли, и о которой сервер 'помнит'. Перейдите с b.aspx на c.aspx, будете видеть b.aspx, а история о a.aspx пропадёт (я так предполагаю). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 18:24 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Опытным путем получено следующее... Возврат после сабмита целевой формы (b) в вызывающую (a) происходит если форма b не является серверной (в смысле не runat=server) Именно при таком условии адрес в браузере после сабмита b остается неизменным (http://.../a.aspx) В противном случае возврат в вызывающую страницу не происходил... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2005, 11:11 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Эх, кажись, осталось за малым :-) из моего же постаНу, если возвращает по сабмиту целевой формы к начальной, чего ж этим не воспользоваться?!... Изменил немного структуру: установил страничку b.aspx стартовой (base), при загрузке которой проверяю наличие переменной сессии - если таковой нет -- Server.Transfer("a.aspx") (authorization), при постбэке которой и формируется эта переменная... в настоящей реализации имеем следующее: в PageLoad стартовой страницы (basepage) Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Буду признателен ответившим на такие вопросы: 1) Если форма авторизации будет серверной, то Request.Path не вернет адрес страницы, за которой обращались до трансфера. Каким тогда образом получить этот адрес? Сохранять в сессии перед самим трансфером? 2) После сабмита формы авторизации формируется история, в которой тоже базовая страница. По какой причине она возникает? Это победить можно? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2005, 17:11 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Мое предположение на предмет формирования узла в истории: после сабмита добавляются параметры (POST) авторизации и передаются в базовую страницу, т.к. флажок preserveForm включен. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2005, 17:26 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
авторНу, если возвращает по сабмиту целевой формы к начальной, чего ж этим не воспользоваться?!... Изменил немного структуру: установил страничку b.aspx стартовой (base), при загрузке которой проверяю наличие переменной сессии - если таковой нет -- Server.Transfer("a.aspx") (authorization), при постбэке которой и формируется эта переменная... Ну логон по науке делался када-то так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. Всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2005, 21:14 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Вот у меня проблема под такой же темой, поэтому решил новый топик не создавать. У меня есть DevExpress GridView и у него есть событие SelectRecord, которое вызывается при выделении записи в гриде. Я хочу его задействовать, чтобы узнать выбранную строку и загрузить следующую страницу, где будут уже детальные данные. Нигде, к сожалению, не нашел примеров, как это нужно делать. Так вот т.к. я выполняю щелчок по строке для выбора, то IsPostBack == true. И всё, теперь я не могу в событии использовать Server.Transfer(). "Server.Transfer не возможно вызвать при обратном вызове страницы". Так что делать, как обычно это делают? Вроде тривиальная задача шелкнул по записи, получил данные и открылась другая страница(или с другой страницы позже получил данные через PreviousPage), а я всю ночь искал и ни одного примера нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 10:07 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
ZardoZ, Мягко говоря, это совсем другая тема. В девэкспрессе должно быть клиентское событие на выбранную строку. Сделай в обработчике что-то типа window.location.replace("NewPage.aspx"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 12:53 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
Andrew_SQL, можна передавать данные используя делегаты ну что то Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ну и вызывать событие там где надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 14:47 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
StarlexZardoZ, Мягко говоря, это совсем другая тема. В девэкспрессе должно быть клиентское событие на выбранную строку. Сделай в обработчике что-то типа window.location.replace("NewPage.aspx"); Там есть аналогичное клиентское событие, но к сожалению window.location.replace("NewPage.aspx") и д.р. функции из javascript не сохраняют объект PreviousPage, тут я так понимаю нужен только Server.Transfer(). Даже, когда я пытаюсь вызвать серверный метод из js через PageMethods.MyStaticServerMethod(), то, когда пытаюсь обратиться к Server.Transfer в методе на стороне сервера, получаю, что Server вне области видимости из этого метода. VIT2708Andrew_SQL, можна передавать данные используя делегаты ну что то Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ну и вызывать событие там где надо К сожаление не понимаю как это мне поможет. И где нужно вызывать событие. С ASP.NET только начал знакомиться. Может просто Server.Transfer() не предназначен для того, чтобы менять страницу в случае реакции на действия пользователя и следовательно объект Page.PreviousPage используется только в каких-то специфических случая, а в остальных нужно передавать данные через сессию и переключать страницу через js? Просто механизм есть, вроде как раз для таких случаев, а не работает (что для MS не редкость конечно). Как обычно выполняется такая тривиальная задача как клик по строке в Gridview и передача данных в следующую страницу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 15:44 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
ZardoZ, ... вообще говоря, если пересмотреть подход, то можно и вообще никуда не переходить, а использовать переключение (visible=true/false) разных div-ов с различным контентом на одной странице ... тогда и передавать ничего никуда не надо - все на одной странице ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 15:48 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
carrotik, можно конечно, но логичнее сделать все на разных страницах. У меня на одной странице список предприятий, а на другой уже данные и графики выбранного предприятия. Хотел просто опробовать прелести ASP.NET, а они не работают Ну раз ни у кого нет идей, то буду через js переключать и через сессию сохранять объект, как в php делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 17:51 |
|
||
|
Переход на новую страницу
|
|||
|---|---|---|---|
|
#18+
ZardoZcarrotik, можно конечно, но логичнее сделать все на разных страницах. У меня на одной странице список предприятий, а на другой уже данные и графики выбранного предприятия. Хотел просто опробовать прелести ASP.NET, а они не работают Ну раз ни у кого нет идей, то буду через js переключать и через сессию сохранять объект, как в php делал. ...сессии имеют привычку истекать .. это тоже настраивается, разумеется, но можно подумать над сохранением переходных данных во "временной" таблице БД .. По скорости на вебе это не так заметно, зато надежней .. Но это дело вкуса ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 18:04 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33361487&tid=1358214]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 407ms |

| 0 / 0 |
