ASP.net Javascript Postback - PullRequest
       3

ASP.net Javascript Postback

1 голос
/ 30 августа 2010

Я изучаю javacript, и я нахожусь в точке, где я хочу начать делать некоторые асинхронные вещи.Вот суть моего квеста:

У меня есть HTML-код, который выглядит следующим образом:

<a id='nine' onclick="SendToServer('nine');">Nine</a>

Затем я хочу в Javascript отправить обратно на сервер, чтобы #нажали девять.

function SendToServer(id)
{
   //Send that a#nine was clicked back to server
}

Затем я хочу, чтобы какая-то функция-обработчик в c # обновляла запись в базе данных.

public void GetMessageFromJSHandler(int id)
{
     Item[x][y] = id;
}         

Я не хочу, чтобы страница перезагружалась,Я не хочу, чтобы что-то изменилось на странице, и я хочу сделать это в виде простого javascript, чтобы я мог узнать, как это работает.

Это БОЛЬШОЙ ресурс: http://msdn.microsoft.com/en-us/library/ms178210.aspx Я закончилизменить этот пример для моих нужд.Все Js и очень просто.

Ответы [ 4 ]

1 голос
/ 30 августа 2010

функция SendToServer (id) { var pageUrl = "SamplePage.aspx? callback = true & ItemId =" + item if (window.XMLHttpRequest) { var xmlRequest = new XMLHttpRequest (); } еще { var xmlRequest = новый ActiveXObject ("Microsoft.XMLHTTP"); } xmlRequest.open ("POST", pageUrl, false); xmlRequest.setRequestHeader ("Content-Type", "application / x-www-form-urlencoded"); xmlRequest.send (нуль); }

On pageLoad you just check the callback flag and call your function



 if(Request.QueryString["callback"].ToString() == "true")
   {
    string id = Request.QueryString["ItemId"].ToString()
    GetMessageFromJSHandler(int id);
   }
1 голос
/ 30 августа 2010

Вы можете пометить методы вашей страницы атрибутом WebMethod, чтобы создать для них заглушки на стороне клиента.Вот пример .Другая вещь, которую вы можете сделать, это сделать статический метод страницы и вызвать его с помощью функции jjuery ajax (). Вот как это работает .

1 голос
/ 30 августа 2010

JQuery:

function SendToServer(id)
{
  $.ajax({
                        url: "/GetMessageFromJSHandler",
                        type: "POST",
                        data: { 'id': id }
          }):

}

1 голос
/ 30 августа 2010

Ну, в контексте вашего вопроса, вы на правильном пути.Вы можете использовать этот пример: http://www.devx.com/DevX/Tip/17500, чтобы увидеть, как заполнить вашу функцию SendToServer

GetMessageFromJSHandler, вероятно, будет вызван методом ProcessRequest реализации IHttpHandler, по крайней мере, в самом простом сценарии.

но такой способ ведения дел действительно предназначен для академических целей, обучения сантехнике как бы.В производственной среде вам гораздо лучше использовать фреймворк.Мой личный выбор - jquery на клиенте и ASP.NET MVC на сервере, но если вам нравится «обычный» ASP.NET (он же веб-формы), то посмотрите библиотеки MS Ajax, чтобы увидеть некоторые более простые способы настройки объектов вмасштабируемая и поддерживаемая мода.

...