Я не уверен, что полностью понимаю последовательность того, что вы пытаетесь сделать, что на стороне клиента, а что нет ....
Однако вы можете добавить на страницу метод javascript для запуска, который затем будет вызывать WebMethod. При вызове WebMethod через javascript вы можете добавить функцию обратного вызова, которая будет вызываться при возврате WebMethod.
Если вы добавите тег ScriptManager на свою страницу, вы можете вызывать WebMethods, определенные на странице, через Javascript.
<asp:ScriptManager ID="scriptManager1"
runat="server" EnablePageMethods="true" />
С помощью функции Page_Load вы можете добавить вызов к вашему WebMethod ..
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"callDoSome",
"PageMethods.DoSome(Callback_Function, null)",
true);
Callback_Function представляет функцию javascript, которая будет выполняться после вызова WebMethod ...
<script language="javascript" type="text/javascript">
function Callback_Function(result, context) {
alert('WebMethod was called');
}
</script>
EDIT:
Найдена эта ссылка для элементов управления веб-АПД . Это то, что вы используете ??
С этой страницы, похоже, что-то вроде этого будет делать обратный вызов JavaScript.
public void ServerAction(ToolbarItemInfo info) {
string jsfunction = "alert('Hello');";
Map mapctrl = (Map)info.BuddyControls[0];
CallbackResult cr = new CallbackResult(null, null, "javascript", jsfunction);
mapctrl.CallbackResults.Add(cr);
}