Передача управления страницей из jscript в метод страницы в коде позади? - PullRequest
1 голос
/ 24 апреля 2010

Я ищу написать метод javascript как таковой, вызываемый, когда выпадающий список меняет значение

function GetStuff(sender, destID){

    var dest = document.getElementById(destID);
    this.PageMethods.GetStuffs(sender, dest, null, null);
}

GetStuffs () находится в Codebehind следующим образом:

[WebMethod]
public static void GetStuffs(object sender, object dest)
{
    DropDownList s = sender as DropDownList;
    DropDownList d = dest as DropDownList;

    d.Items.Add(new ListItem(s.SelectedValue));
}

У меня установлена ​​точка останова для метода, и предупреждения в jscript-методе GetStuff () запускаются до вызова PageMethod, когда ничего не происходит. Я настроил методы OnSuccess и OnFailure с помощью предупреждений, и они не запускаются.

Есть мысли? Я делаю что-то по своей сути неправильно?

1 Ответ

2 голосов
/ 24 апреля 2010

Пара предметов на заметку:

  • Класс GetStuffs возвращает void, поэтому OnSuccess или OnFailure не будут запускаться
  • Даже если вы что-то вернете обратно, элемент управления в пользовательском интерфейсе не будет обновляться, поскольку PageMethod просто возвращает значение вызывающему javascript, но не обновляет пользовательский интерфейс в любом случае
  • Вам нужно обработать событие OnSuccess на клиенте, а затем обновить раскрывающийся список на клиенте
  • Любые изменения в элементе управления на сервере не отражаются на клиенте, использующем PageMethods
  • Другой момент, на который следует обратить внимание, это то, что вы возвращаете объект выпадающего списка, который является элементом DOM, и переводите его на серверный элемент управления. Это невозможно.
...