Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить введенные юзером данные, с другой странички 
:(
    Опции темы
Competitor
Дата 24.1.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Открываю страничку. На ней находится input. Юзер вводит данные. Как со старой странички узнать, что именно он ввел в новой?
PM MAIL WWW   Вверх
vladsch
Дата 24.1.2007, 15:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.12.2006

Репутация: 3
Всего: 4



Что подразумевается под старой и новой страницами?
Если подразумевается что юзер вводит что-то, жмет к примеру Submit и
обработка идёт на другой странице (например, у кнопки выставлен PostBackUrl
на другую страницу), то можно использовать PreviousPage.FindControl или Request.Form
PM MAIL   Вверх
Competitor
Дата 24.1.2007, 15:56 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



Нужно изменить элемент другой странички. Пусть текущая страничка default.aspx.
Мне же нужно изменить значение элемента myElement в странички otherPage.aspx.
 smile 
PM MAIL WWW   Вверх
vladsch
Дата 24.1.2007, 16:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.12.2006

Репутация: 3
Всего: 4



Цитата

Нужно изменить элемент другой странички. Пусть текущая страничка default.aspx.
Мне же нужно изменить значение элемента myElement в странички otherPage.aspx.


А смысл всего этого? Когда ты находишься на страничке default.aspx, то страницы 
otherPage.aspx нет в памяти, контролы её не созданы. Так что изменять даже не чего

Изменить ты сможешь только если будешь на otherPage.aspx.

Если очень нужно такое поведение, то запоминай на default.aspx изменения, которые
нужно внести в контрол на otherPage.aspx (в сессии, в базе или где-то ещё) и когда
будешь на otherPage.aspx изменяй этот контрол


P.S. Всё что я тут сказал верно только в том случае если эти две страницы не живут
одновременно в разных фреймах
PM MAIL   Вверх
Competitor
Дата 24.1.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 23.3.2005
Где: Tula

Репутация: нет
Всего: -1



vladsch, сперва была загружена страничка MainPage.aspx, так что все ее элементы созданы. Далее юзер нажал на кнопку Button и открылась другая страничка Comment.aspx. В ней пользователь ввел: "Ваш сайт попахивает фикальными выделениями". И закрыл это окно. И мы опять оказались на исходной MainPage.aspx. Как мне теперь узнать, что написал юзер на страничке Comment.aspx. 
Я так понимаю, нуно со странички Comment.aspx передать инфу на MainPage.aspx. Так вот как это сделать. Допустим я хочу присвоить введенные данные элементу myElement. 
PM MAIL WWW   Вверх
vladsch
Дата 24.1.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 6.12.2006

Репутация: 3
Всего: 4



Ок, понял проблему. Решается способами, которые я упомянул в первом посте
Пример:

1. PreviousPage

   Значит так, находимся на Comment.aspx
   На этой странице есть контрол TextBox1 для комментов и кнопка для подтверждения комментов
   У этой кнопки выставим параметр PostBackUrl в "MainPage.aspx"
   На этой странице всё

   На странице MainPage.aspx пусть будет лейбл, который будет отображать коммент, если был
   выполнен кросс постбек. Обработчик Page_Load

Код

   protected void Page_Load(object sender, EventArgs e)
    {
        if (PreviousPage != null)
        {
            Control comment = this.PreviousPage.FindControl("TextBox1");
            Label1.Text = comment != null ? ((TextBox)comment).Text:"No TextBox1";
        }
        
    }

   
Здесь можно сделать улучшение, типа можно принимать PreviousPage только определлённого типа
Ну это ты сам в мсдн посмотри


2. Request.Form

    Входные условия те же

   На MainPage.aspx обработчик Page_Load
   
Код

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Form["TextBox1"] != null)
        {
            Label1.Text = Request.Form["TextBox1"];
        }
    }


Этот вариант, мне кажется, будет работать не всегда, так как ASP может заменить ID на что-то другое
(не даром у контролов есть свойство ClientID)


PM MAIL   Вверх
Pankon
Дата 24.1.2007, 23:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Цитата(Competitor @  24.1.2007,  15:06 Найти цитируемый пост)
Открываю страничку. На ней находится input. Юзер вводит данные. Как со старой странички узнать, что именно он ввел в новой? 

JavaScript 
PM MAIL   Вверх
Pankon
Дата 7.3.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Цитата(Pankon @  24.1.2007,  23:37 Найти цитируемый пост)
JavaScript  

Competitor, не умеешь(читай не можешь) прислушиваться к советам?  smile 
Что ж, даю наводящие примеры:

MainPage.aspx
Код

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Флудиразище</title>
    <script language="javascript" type="text/javascript">
    var myWin;
    function openWin() {
        myWin = window.open ('Comment.aspx', 'Fekalii', 'top=100,left=330,height=400,width=590');
        myWin.focus();
    return false;
    }
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input id="ButtonBe" type="button" value="Clickme" onclick="openWin();" />
            <div id="datenRecipient" style="width: 400px; height: 100px; border:solid 1px black;">
            
            </div>
        </div>
    </form>
</body>
</html>
Comment.aspx
Код

<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Comment</title>
    <script language="javascript" type="text/javascript">
        function saveMyDaten() {
            var myParent;
            myParent = window.opener;
            var dt;
            dt = window.document.getElementById('sourceDaten').value;
            myParent.document.getElementById("datenRecipient").innerHTML=dt;
        }
</script>
</head>
<body onunload="saveMyDaten();">
    <form id="form1" runat="server">
        <asp:Label ID="Myslja" runat="server" Text="Я учусь прислушиваться к советам"></asp:Label>
        <br/>
        <div>
            <input id="sourceDaten" type="text" />
            <br/><br/><br/><br/>
            мой сайт попахивает фикальными выделениями
        </div>
    </form>
</body>
</html>


Наслаждайся своим сайтом  smile 


ПС1. А что такое - Флудираз?
ПС2. Попытайся подумать в следующий раз сам..... , когда будешь понижать рейтинг. 
       Ну или поиск в сети.... smile 
PM MAIL   Вверх
Fighter
Дата 16.12.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



И что-то все равно ничего не помогает. 
PreviousPage всегда NULL.
PM MAIL   Вверх
Fighter
Дата 17.12.2009, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



UP
PM MAIL   Вверх
tol05
Дата 17.12.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



PreviousPage будет не null если делать переход через Server.Transfer или свойство кнопок PostBackUrl

Response.Redirect("Default2.aspx") тоже не даст PreviousPage

Код

<a href=Default2.aspx >click here</a>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx"/>


посмотрите в браузере чем отличается конечная html разметка для перехода на Default2.aspx


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Fighter
Дата 18.12.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Ага, теперь понятно, все работает. Но, возникает следующая проблема, а что если мне необходимо при нажатии на кнопку написать еще обработчик, и в зависимости от каких-то определенных параметров переход будет осуществляться либо на одну страничку либо на другую. 
PM MAIL   Вверх
tol05
Дата 18.12.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



Не используйте PostBackUrl, а напишите обычный серверный обработчик кнопки. В нем, в зависимости от условий, выполняйте или Transfer на ту или иную страницу. При этом в браузере правда урл останется тем же, что был на исходной странице, или Redirect на ту или иную страницу. Недостаток - лишний вызов с клиента

Или напишите клиенсткий javascript, если условия выбора могут быть вычислены на клиенте (не будет лишнего вызова) и повесьте его на кнопку. 

вариантов много


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.