ASP.NET AJAX: создание обратной передачи - PullRequest
0 голосов
/ 03 декабря 2009

Я хотел бы вызвать пост обратно, который происходит только один раз, вставив немного AJAX на страницу после определенного события.

В настоящее время у меня есть:

string script = "<script language='Javascript'>" +
                                    "__doPostBack('GetSpreadsheet', '');" +
                                "</script>";

Page.ClientScript.RegisterStartupScript(this.GetType(), "DownloadExcel", script);

Однако после того, как я это сделаю, у каждого поста назад будет цель GetSpreadsheet, а не только первая. Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 03 декабря 2009

Попробуйте использовать Метод ScriptManager.RegisterStartupScript (элемент управления, тип, строка, строка, логическое значение) .

В комментариях вы найдете этот текст, объясняющий, что вам нужно.

Блоки скриптов запуска, которые зарегистрированы с использованием этого метода отправляется на страницу только тогда, когда контроль который регистрирует блок внутри элемента управления UpdatePanel, который обновляется.

0 голосов
/ 03 декабря 2009

Попробуйте проверить метод IsStartUpScriptRegistered () перед регистрацией скрипта.

if (!(Page.ClientScript.IsStartupScriptRegistered("DownloadExcel")) )
     Page.ClientScript.RegisterStartupScript(this.GetType(), "DownloadExcel", script);
...