#c# #.net #javascript #ajax #web-services
Вопрос:
Я написал элемент управления на C#, который переопределяет встроенный элемент управления DropDownList. Для этого мне нужен включенный ресурс javascript, который я включаю в качестве встроенного ресурса, а затем добавляю WebResource
атрибут, который отлично работает.
Однако мне также нужно ссылаться на веб-сервис, который я обычно включаю в scriptmanager на странице, подобной этой
<asp:scriptmanager id="scriptmanager" runat="server">
<Services>
<asp:ServiceReference Path="~/Path/To/Service.asmx" />
</Services>
</asp:scriptmanager>
Есть ли какой-либо способ заставить страницу включить эту ссылку в код элемента управления, который я создал, аналогично тому, как она включает встроенный файл javascript?
Ответ №1:
Вы можете добавить ScriptManagerProxy в код или разметку вашего элемента управления и добавить ссылку на службу через него. Настройки в ScriptManagerProxy объединяются с «реальным» ScriptManager во время компиляции.
Ответ №2:
Если вы знаете страницу, на которой находится пользовательский элемент управления, вы можете создать ((Имя страницы)this.Page).scriptmanager.Службы.Добавить() из пользовательского элемента управления
Ответ №3:
Вы можете просто добавить javascript для вызова веб-сервиса самостоятельно:
Sys.Net.WebServiceProxy.invoke(url, имя метода, useHttpGet, параметры, обратный вызов с успехом, обратный вызов с ошибкой, пользовательский контекст, время ожидания);
Документы предназначены для asp.net Ajax 1.0, но это тот же .net 3.5.