powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net -> Web Service + AJAX
18 сообщений из 18, страница 1 из 1
ASP.Net -> Web Service + AJAX
    #33892450
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь у меня возникла следующая проблема. У меня есть на форме кнопка и по ее нажатию у меня должно измениться содержимое какого либо контейнера.
Например если это обычный контрол (не асп) то я пишу так:

<input id="bttnLoadToDropDown" type="button" value="Загрузить список" onClick="SendQuery()" /><br />

а функция SendQuery выглядит след образом:

<script type="text/javascript">
function SendQuery()
{
WebService.HelloWorld(onRequestComplete);
}
function onRequestComplete(result)
{
var ourDiv = document.getElementById("Label1");
ourDiv.innerHTML = result;
}
</script>

Это все прекрасно работает без перезагрузки страницы, т.е перезагружается только то, что мне нужно.
Но стоит мне создать ASP контрол (например кнопку):

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

а в обработчике написать:

protected void Button1_Click(object sender, EventArgs e)
{
localhost.WebService serv = new localhost.WebService();
Label1.Text = serv.HelloWorld();
}

то страничка соответственно начинает перезагружаться. В связи с этим у меня возникает такой вопрос: Как на ASP.Net (C#) вызвать веб сервис и не перезагружать полностью страницу т.е использовать технологию AJAХ посредством ASP. В интернете я нашел ссылки на Atlas Framework, но примеры в нем почему то были тоже на javascript. Во всех источниках которые я нашел были только javascript, который я продемонстрировал в первом примере, но он меня не устраивает.
Как быть? Может я чего то непонимаю?
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33892732
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Button1.Attributes["onclick"] = "SendQuery()";
или <input id="bttnLoadToDropDown" runat=server ....>


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33893157
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты меня маленько не понял. Так как ты говоришь я делал и так конечно же работает. Но я как раз и хочу сделать без использования JAVA. Мне скорее всего нужно каким то образом модифицировать этот блок:

protected void Button1_Click(object sender, EventArgs e)
{
localhost.WebService serv = new localhost.WebService();
Label1.Text = serv.HelloWorld();
}

но я не знаю как.
Какие будут соображения.
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33893227
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UP
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33893274
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм... скорее всего вы сами не понимаете что хотите сделать :)

что бы попасть в блок protected void Button1_Click нужно отправить запрос на сервер, что соответственно перегрузит
страницу... можно, конечно, засунуть это во фрэйм... только причем тогда здесь ajax?
да, и очень интересно услышать, чем не устраивает java-script?


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33893334
dmMagic.NET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Если Вы только начали программировать и хотите получать данные с сервера без перезагрузки, то действительно Вы можете использовать технологии Web Service, Ajax, Atlas. Но как показывает практика, на первоначальном этапе разобраться со всем этим бывает не так просто.
Как некую альтернативу предлагаю посмотреть методы
Page.ClientScriptManager.GetCallbackEventReference

Это позволит Вам зарегистрировать на странице скрипт обратных вызовов. Т.е. вам необходимо будет указать скрипт, который отправляет данные на сервер, скрипт, который будет выполнен при получении данных с сервера и скрипт при возникновении ошибки. Очень хороший простой пример (MSDN 2005):

ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref13/html/M_System_Web_UI_ClientScriptManager_GetCallbackEventReference_2_72b04016.htm

Ну, это как альтернатива. Причем, думаю, запрограммировать сможете меньше чем за час.

Разработка для EMC Documentum
http://www.dmmagic.net
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33893359
Stray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты меня маленько не понял. Так как ты говоришь я делал и так конечно же работает. Но я как раз и хочу сделать без использования JAVA. Мне скорее всего нужно каким то образом модифицировать этот блок:

protected void Button1_Click(object sender, EventArgs e)
{
localhost.WebService serv = new localhost.WebService();
Label1.Text = serv.HelloWorld();
}

но я не знаю как.
Какие будут соображения.

Без javascript никак! На то он и AJAX!
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33894707
Den!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_alfТы меня маленько не понял. Так как ты говоришь я делал и так конечно же работает. Но я как раз и хочу сделать без использования JAVA...


Буква "J" в аббревиатуре "AJAX" обозначает "JavaScript", кажись.

Имхо, AJAX без явы, тоже что Active Server Pages без сервера :)
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33894792
Stray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mr_alfТы меня маленько не понял. Так как ты говоришь я делал и так конечно же работает. Но я как раз и хочу сделать без использования JAVA...


Буква "J" в аббревиатуре "AJAX" обозначает "JavaScript", кажись.

Имхо, AJAX без явы, тоже что Active Server Pages без сервера


A synchronous J avaScript A nd X ML

Эт чоб не казалось..
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33895881
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
For Stray and profi
AJAX - это действительно Asynchronous JavaScript And XML, но мне показалось из прочитанных мною сайтов, что сейчас многие так называют просто методологию доступа к странцам, когда происходит частичная смена содержимого страницы. Асинхронный вызов (помоему это так называется).

For dmMagic.NET
К сожаления у я не смог найти эту ветку в MSDN. Не могли бы вы скопировать ее сюда.
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33896085
dmMagic.NET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, если только все это дело сюда вставится. Это ASP.NET 2 !
Тут два примера с разным синтаксисом. Один сразу выкиньте, чтобы проще понять...

<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
   
    public int cbCount = 0;
   
    // Define method that processes the callbacks on server.
    public void RaiseCallbackEvent(String eventArgument)
    {
        cbCount = Convert.ToInt32(eventArgument) + 1;
    }
    // Define method that returns callback result.
    public string GetCallbackResult()
    {
        return cbCount.ToString();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Define a StringBuilder to hold messages to output.
        StringBuilder sb = new StringBuilder();
        // Check if this is a postback.
        sb.Append("No page postbacks have occurred.");
        if (Page.IsPostBack)
        {
            sb.Append("A page postback has occurred.");
        }
        // Write out any messages.
        MyLabel.Text = sb.ToString();
        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;
        // Define one of the callback script's context.
        // The callback script will be defined in a script block on the page.
        StringBuilder context1 = new StringBuilder();
        context1.Append("function ReceiveServerData1(arg, context)");
        context1.Append("{");
        context1.Append("Message1.innerText =  arg;");
        context1.Append("value1 = arg;");
        context1.Append("}");
        // Define callback references.
        String cbReference1 = cs.GetCallbackEventReference(this, "arg",
            "ReceiveServerData1", context1.ToString());
        String cbReference2 = cs.GetCallbackEventReference("'" +
            Page.UniqueID + "'", "arg", "ReceiveServerData2", "",
            "ProcessCallBackError", false);
        String callbackScript1 = "function CallTheServer1(arg, context) {" +
            cbReference1 + "; }";
        String callbackScript2 = "function CallTheServer2(arg, context) {" +
            cbReference2 + "; }";
        // Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1",
            callbackScript1, true);
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2",
            callbackScript2, true);
    }
</script>
<script type="text/javascript">
var value1 = 0;
var value2 = 0;
function ReceiveServerData2(arg, context)
{
    Message2.innerText = arg;
    value2 = arg;
}
function ProcessCallBackError(arg, context)
{
    Message2.innerText = 'An error has occurred.';
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ClientScriptManager Example</title>
</head>
<body>
    <form id="Form1"
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button"
             value="ClientCallBack1"
             onclick="CallTheServer1(value1, alert('Increment value'))"/>   
      <input type="button"
             value="ClientCallBack2"
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel"
                 runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>
Разработка для EMC Documentum
http://www.dmmagic.net
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33896744
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал ваш пример. Да он работает. Но у меня не получается сделать кнопку ASP. Т.е при нажатии на ASP контрол кнопку чтобы происходило тоже самое. Я не знаю синтаксиса.
Вот так конечно же не работает:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="CallTheServer1(value1, alert('Increment value'))"/>
Как надо?
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33896842
Stray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал ваш пример. Да он работает. Но у меня не получается сделать кнопку ASP. Т.е при нажатии на ASP контрол кнопку чтобы происходило тоже самое. Я не знаю синтаксиса.
Вот так конечно же не работает:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="CallTheServer1(value1, alert('Increment value'))"/>
Как надо?
Что-то ты все в кучу собрал...
Зачем тебе контрол Button? Да еще с выполнением на стороне сервера?
(обновление страницы целиком - чего ты пытаешься избежать с помощью AJAX)

Клиентский скрипт вызывается кнопкой <INPUT type="button"> например... А в целом на что угодно можно повесить вызов.... Частенько на таймер вешают.

Но не на серверные контролы!
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33897008
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что разьве контролы ASP.NET обязательно должны обрабатываться сервером? Если так то извините за ту глупость которую я здесь нес :)
Но поймите меня правильно - Я УЧУСЬ
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33897172
Stray
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что разьве контролы ASP.NET обязательно должны обрабатываться сервером? Если так то извините за ту глупость которую я здесь нес

Но поймите меня правильно - Я УЧУСЬ

Если ты работаешь в Visual Studio то для примера положи Web Forms контрол
(тот же Button) на свою форму. перейди в режим HTML, найди его и убери строчку runat="server". Вернись в Design режим. Что видишь?

Это ответ на твой вопрос.
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33897262
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за наставления на путь истинный. Буду изучать дальше.
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33897782
dmMagic.NET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде как этот пример и должен был тебе помочь сделать, то что ты хочешь.

1. Если ты делаешь серверную кнопку, то для этого должна произойти отправка страницы.
2. Поэтому размещаем НЕ серверную кнопку.
Вешаем на нее скрипт который отправляет данные на сервер.
На сервере метод получает данные (в виде текстовой строки) Делаешь какую угодно обработку (лезешь в базу и т.д. и т.п.) Отправляешь данные обратно.
Второй скрипт получает твои данные (в виде текстовой строки)
Делаешь какую угодно обработку на стороне клиента
Страница как была, так и осталась.

Причем как видно кода практически и нет. На одной страничке все уместилось...

Разработка для EMC Documentum
http://www.dmmagic.net
...
Рейтинг: 0 / 0
ASP.Net -> Web Service + AJAX
    #33898124
mr_alf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
****размещаем НЕ серверную кнопку**** т.е. не ASP.
В этом то и была моя грубейшая ошибка. Я бился в закрытую дверь. Аналогичный пример который вы мне показали я как раз и пробовал когда только задался целью обновления старницы без перезагрузки.
Спасибо!!!
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net -> Web Service + AJAX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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