Без PageMethods:
Сначала вам нужно обратиться к библиотеке jquery
http://jquery.com/
Затем на стороне сервера вам нужна функция, которая возвращает такие данные, как:
Ссылка необходима: с использованием System.Web.Services;
[WebMethod]
public static string Test(string id)
{
// do ...
return "data";
}
На странице вам нужно что-то вроде:
<script type="text/javascript">
$(document).ready(
function () {
$.ajax({
type: "POST",
url: "Default.aspx/Send",
data: "{id : '" + "data to send" + "'}",
contentType: "application/json; charset=utf-8",
cache: false,
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
},
success: function (msg) {
// Output comes here
}
});
});
</script>
Точки:
На стороне сервераФункция должна быть общедоступной и статической и иметь атрибут WEBMETHOD
- При использовании вызова ajax имя параметра должно совпадать, т.е.
РЕДАКТИРОВАТЬ:
Загрузка изображения оченьeasy:
На стороне клиента создайте пустое изображение, например
<img src="" alt="Please Wait Loading" id="test" />
, и верните URL-адрес изображения в выходные данные, например 'load.png'
, и в выходные данные JSON.используйте это:
success: function (msg) {
alert(msg.d);
$('#test').attr("src", msg.d);
}
Пожалуйста, убедитесь, что вы пишете msg.d примечание .d слово в конце.
Если у вас возникли проблемы, дайте мне знать
в качестве данных: "{id: '" + "данные для отправки" + "'}",
"id" , но должны совпадать с именем параметра на стороне сервера
С PageMethods
Со стороны сервера все остается таким же, но на стороне клиента вам не нужен jquery
Вам необходимо:
ScriptManager с включенными методами страницы, например
<asp:ScriptManager EnablePageMethods="true" />
и для вызова функции вам нужно что-то вроде
PageMethods.Send("param name" , result);
Send = имя функции
, а result - это имяфункция, которая будет выполняться после объявления результата, как
function result(output)
{
alert("function return value");
}