Я отображающий список на странице Default.aspx, который содержит объекты (лицо) извлекается из базы данных:ASP.NET Обновление списка с помощью JQuery AJAX
[WebMethod]
[ScriptMethod(UseHttpGet = false)]
public static void getPersonList()
{
DatabankService dbs = new DatabankService();
persons = dbs.getPersons());
// fillTable(persons) is not possible here (not possible in static method).
// fillTable code also cannot be place here because it uses UI Elements from default.aspx to create the table (same problem as above).
}
метода, чтобы заполнить таблицу:
public void fillTable(List<Person> persons)
{
// make colums and rows and will with data (foreach person in..)
}
Каждые 10 секунд этот метод должен вызываться снова без перезагрузки страницы, так что список обновляется:
$(function() {
setInterval(function() {
getData();
}, 10000);
});
function getData() {
$.ajax({
type: "POST",
async: true,
url: "Default.aspx/getPersonList",
dataType: "json",
contentType: "application/json; charset=utf-8",
error: function (jqXHR, textStatus, errorThrown) {
// error
},
success: function (data) {
// success
}
});
}
Проблема в том, что я не могу вызывать функцию fillTable из статического [WebMethod] getPersonList(). Как я могу сделать эту работу?
Что вы имеете в виду «Не удается вызвать функцию fillTable» ? Он не работает, он терпит неудачу? Код звучит хорошо, поэтому есть, вероятно, крошечные вещи, которые вы забываете. –
Вызов метода внутри статического метода дает ошибку, я думаю, это просто невозможно: «Ссылка на объект требуется для нестатического поля, метода или свойства ... Filltable()». – Sam
Создайте метод в классе Person, называемом fillTable(), а затем верните его из метода getPersonList(). Также getPersonList() должен возвращать строку json-данных. –