Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вызов серверной функции с клиента / 9 сообщений из 9, страница 1 из 1
10.08.2006, 17:52
    #33911384
:(
:(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
У меня есть javascript функция (Client) и я хочу из неё вызвать Sub на сервере.
Странца на сервере .aspx.vb имеет много процедур.
Идея обратиться только к одной из них и послать туда параметр.
...
Рейтинг: 0 / 0
10.08.2006, 18:22
    #33911467
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
AJAX
...
Рейтинг: 0 / 0
10.08.2006, 18:24
    #33911471
:(
:(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
А пример кода привести можно?
...
Рейтинг: 0 / 0
10.08.2006, 18:43
    #33911517
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
Тут обучалка (на инглише, но неплохая)
...
Рейтинг: 0 / 0
10.08.2006, 18:57
    #33911544
:(
:(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
Послушайте, у меня нет проблем ни с инглишем, ни с AJAX в целом.
У меня совершенно конкретная проблема Как построить URL так, что-бы в ней было обращение к конкретной процедуре. Обычно-средне-хрестоматийный пример не работает.
Вот поэтому и обратилась к сообществу.
А не для того бы дать кому-то возможность сплюнуть свысока и не по делу.
...
Рейтинг: 0 / 0
10.08.2006, 19:19
    #33911571
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
Что значит не по делу? Там как раз все по делу. Есть объект XMLHTTPRequest, который позволяет делать синхронный/асинхронный запрос на сервер. Я лично на тех примерах создавал свой AJAX-объект, которым активно пользуюсь.

Ладно, если надо готовые решения, то вот линк , тут есть абсолютно бесплатный AJAX-компонент, который уже позволяет сделать запрос не просто к серверной странице, а уже к конкретной функции в ней. Как пользоваться - описано в доке и примерах, поставляемых вместе с компонентом.
...
Рейтинг: 0 / 0
10.08.2006, 19:42
    #33911600
:(
:(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
Ну раз вы такой спец ...
Попробую ещё раз.
Есть функция getZipData в которую попала некоторая val откуда и как не важно. Важно что она уже там.

Код: 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.
27.
28.
29.
30.
31.
32.
        function getZipData(val)
        {
 	        loadXMLDoc('http://localhost/MyApplication/AAP123.aspx?proc=GetCity&Zip =' + val);
        }
        
        function loadXMLDoc(url) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
            if (req) {
             alert(url)                
             req.onreadystatechange = processReqChange;
             req.open("GET", url, true);
             req.send();
            }
            
        }
        
        function processReqChange() {
            if (req.readyState ==  4 ) {
           
                if (req.status ==  200 ) {
    
                    document.forms[ 0 ].output.value  = req.responseText 
                    response  = req.responseXML.documentElement;
                    //City = response.getElementsByTagName('City')[ 0 ].firstChild.data;
                    //State = response.getElementsByTagName('State')[ 0 ].firstChild.data;
                    //document.forms[ 0 ].txtCity.value = City
                    //document.forms[ 0 ].txtState.value = State
                } else {
                    alert("Please enter a valid Zip code:\n" +
                    req.statusText);
                }
            }
        }
На Сервере, есть функция GetCity.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Partial Class AAP123
    Inherits Page
    Implements System.Web.UI.ICallbackEventHandler
    Protected Const EDIT_ORDER_DATE_SECURITY_CODE As Integer =  1034 
    Private Const ADD_ORDER_SECURITY_CODE As Integer =  523 
    Protected returnedString As String

    Private Sub GetName(ByVal Name As String)
        ShowMessage(Name)
    End Sub

    Private Sub GetCity(ByVal Zip As String)
        ShowMessage(Zip)
    End Sub
End Class
Так вот мне надо сделать такое url, что-бы оно обращалось к процедуре GetCity.
Длая этого не надо специальные компоненты, как мне кажется, да и использовать их по ряду причин я не могу.
Мне надо сделать только вот такое обращение.
...
Рейтинг: 0 / 0
11.08.2006, 10:33
    #33912355
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
В VB не силен, поэтому пример дам на C#.
В коде загрузки для aspx-страницы пишем:

Код: plaintext
1.
2.
3.
4.
5.
switch (Request["id"].ToString()){
   case "GetCity":
      Response.Write(GetCity(Request["zip"].ToString()));
      break;
}
сама же функция GetCity должна возвращать значение. Ну а на клиенте УРЛ будет примерно такой:
serverpage.aspx?id=GetCity&zip=что-то там

PS. И все таки советую для начала воспользоваться Obout-овским компонентом, он проще в обращении. Во-первых, не надо ничего писать в Page_Load на сервере, во-вторых - не надо никаких req = new ActiveXObject("Microsoft.XMLHTTP"); на клиенте. Там все проще гораздо, так что советую глянуть (там и на VB примеры есть).
...
Рейтинг: 0 / 0
11.08.2006, 11:36
    #33912659
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов серверной функции с клиента
с постбэком просто, но ИМХО не очень красиво.
а насчёт стороних компонентов неуверен - есть свой (родной) ICallBackEwentHandler - довольно неплохая штука если правильно ею пользоваться ;)
пример использования ;)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вызов серверной функции с клиента / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]