Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ASP.NET Новый топик    Ответить
 Prototypejs. Ajax.Request. Получение параметров  [new]
urukhay
Member

Откуда:
Сообщений: 494
Привет. Есть у меня аспх страница. На ней в одном диве - грид с данными, в другом - всякие текстбоксы, предназначенные для фильтра и кнопка ПрименитьФильтр. Пусть в условиях фильтра я ввел tournamentid=5 и нажал на кнопку Применить. Дальше мне нужно, чтобы в БД был послан запрос типа select * from ttt where tournamentid=5 и результаты этого запроса отобразились в гриде. Сделать все это нужно без перезагрузки всей страницы (с использованием библиотеки prototypejs).
По нажатию на кнопку у меня происходит такой вызов:

new Ajax.Request('http://localhost/Seiwakai/Country_List.aspx', { method:'get', parameters: 'tournamentid=5', onSuccess: function(){alert('Success')}, onFailure: function(){alert('failure')} });

Вопрос: какие мои дальнейшие действия? Если нужно получить эти параметры на сервере, то в каком событии и как это сделать (ибо в PageLoad, Request.QueryString - пустое). Дальше допустим получил парметры, получил результат запроса, как все это отобразить безе перезагрузки (т.е. как обычно или както хитро)?

Если можно, напишите пожалуйста пример кода, который решает эту задачу. В инете утонул в обилии инфы и запутался в результате еще больше чем до того как начал читать :)
27 янв 09, 17:15    [6744025]     Ответить | Цитировать Сообщить модератору
 Re: Prototypejs. Ajax.Request. Получение параметров  [new]
urukhay
Member

Откуда:
Сообщений: 494
В общем ситуация немного прояснилась, но не до конца. В первом случае у меня хэшировался запрос, поэтому вызов был заменен на:

new Ajax.Request('http://localhost:1510/Seiwakai/Country_List.aspx', { method:'get', parameters: 'aaa=rrr&'+Math.random(), onSuccess: function(transport){alert(transport.responseText)}, onFailure: function(){alert('failure')} });

После этого запрос хэшироваться перестал и событие PageLoad стало срабатывать дважды: первый раз Request.QUeryString содержит нужный мне параметр, второй раз - пустое.

Кто нибудь может мне объяснить, почему событие срабатывает дважды, почему в одном случае свойство содержит параметр а в другом нет, и как это отслеживать (т.е. мне нужно получается в одном случае обращаться к этому свойству, т.к. оно содержит параметр, а в другом не обращаться).

И повторяю предыдущий вопрос: как после этого всего мне отобразить данные на странице без ее перезагрузки?
27 янв 09, 18:14    [6744396]     Ответить | Цитировать Сообщить модератору
 Re: Prototypejs. Ajax.Request. Получение параметров  [new]
n_string
Member [заблокирован]

Откуда: Бескрайний Север
Сообщений: 2835
Íåïîíÿòíî çà÷åì òåáå âîîáùå ïîíàäîáèëîñü ñîáûòèå Page.Load åñëè òû ñîáèðàåøüñÿ îáíîâëÿòü ñòðàíèöó àñèíõðîííî:

//call defined web service
function ñall_service()
{
    var country_name = document.getElementById("txtCountry").value;
    var town_name = document.getElementById("txtTown").value;     
    Weather.ExposeResult(country_name, town_name, Defined, RaiseError);
} 

//if exchange succeeded display result
function Defined(result)
{ 
    document.getElementById("txtTown").value = result.town_name;
    document.getElementById("txtCountry").value = result.country_name;
}
//if something occurs display error message
function RaiseError(result)
{
    document.getElementById("display_town").innerHTML = "Ñåðâèñ íåäîñòóïåí.";
    document.getElementById("display_country").innerHTML = "Ñåðâèñ íåäîñòóïåí.";
}

Åñëè æå îáíîâëÿåøü ãðèä:

//update page when conditions are changed    
function update_page()
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm._doPostBack("UpdatePanel1", "");
    ñall_service();
}
ps. pardon, net russkogo na datamaskin
29 янв 09, 11:05    [6752012]     Ответить | Цитировать Сообщить модератору
Все форумы / ASP.NET Ответить