__doPostback - вызывать код за событиями из JavaScript? - PullRequest
3 голосов
/ 15 апреля 2009

Я хочу вызвать метод в моем коде позади JavaScript, я вроде знаю, как это сделать .. Я должен вызвать __DoPostBack передавая имя элемента управления и параметров ..

Но что, если событие не существует, т.е. На самом деле то, что я пытаюсь сделать, это вызвать событие ... но событие не существует, так как с ним не связано никакого элемента управления ...

Я вроде бы мог сделать это:

If IsPostBack Then
       If Request(”__EVENTTARGET”).Trim() = “CleanMe” Then
           CleanMe()
       End If
.....

Но это значит, что я должен сделать это вручную. Могу ли я не подключить событие ... иначе у меня будет множество разных IF (т.е. если это прошло, тогда вызовите это ... и т.д ..).

Есть идеи?

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 апреля 2009

Если вы хотите использовать __doPostBack (), у вас должен быть элемент управления для получения команды. Однако вам не нужно явно связывать событие для его обработки. Если вы хотите, чтобы __doPostBack () вызывал, скажем, Foo (), сделайте следующее:

MyControl : IPostBackEventHandler
{
    void RaisePostBackEvent(string eventArgument)
    {
        Foo();
    }
}

Вызов __doPostBack () вызовет метод RaisePostBackEvent для целевого элемента управления.

2 голосов
/ 15 апреля 2009

Вы можете использовать PageMethod для вызова функции codebehind, вот ссылка на пример: http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx

1 голос
/ 15 апреля 2009

Если вы действительно хотите подключиться к событию, вариант, который доставит вам меньше хлопот, - это создать скрытую кнопку asp и щелкнуть по ней с помощью javascript

...