Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Элемент управления DynamicPopulate в ASP.NET наборе средств управления AJAX вызывает веб-службу (или метод страницы) и заполняет полученное значение целевым элементом управления на странице без обновления страницы.
Обзор
Элемент DynamicPopulate управления в наборе средств управления AJAX ASP.NET вызывает веб-службу (или метод страницы) и заполняет полученное значение целевым элементом управления на странице без обновления страницы. В этом руководстве показано, как настроить эту настройку.
Шаги
Во-первых, вам нужна веб-служба ASP.NET, которая реализует метод для вызова DynamicPopulate. Для класса веб-службы требуется ScriptService атрибут, определенный внутри Microsoft.Web.Script.Services; в противном случае ASP.NET AJAX не может создать прокси-сервер JavaScript на стороне клиента для веб-службы, которая, в свою очередь, требуется DynamicPopulate.
Веб-метод должен ожидать один аргумент типа строка, называемый contextKey, так как контрол DynamicPopulate отправляет одну часть контекстной информации с каждым вызовом веб-службы. Следующая веб-служба возвращает текущую дату в формате, представленном аргументом contextKey :
<%@ WebService Language="VB" Class="DynamicPopulate" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
<ScriptService()> _
Public Class DynamicPopulate
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function getDate(ByVal contextKey As String) As String
Dim myDate As String = ""
Select Case contextKey
Case "format1"
myDate = String.Format("{0:MM}-{0:dd}-{0:yyyy}", DateTime.Now)
Case "format2"
myDate = String.Format("{0:dd}.{0:MM}.{0:yyyy}", DateTime.Now)
Case "format3"
myDate = String.Format("{0:yyyy}/{0:MM}/{0:dd}", DateTime.Now)
End Select
Return myDate
End Function
End Class
Затем веб-служба сохраняется как DynamicPopulate.vb.asmx. Кроме того, можно реализовать getDate() метод как метод страницы в реальной ASP.NET странице с элементом управления DynamicPopulate.
На следующем шаге создайте файл ASP.NET. Как всегда, первым шагом является включение ScriptManager в текущую страницу для загрузки библиотеки AJAX ASP.NET и работы набора средств управления:
<asp:ScriptManager ID="asm" runat="server" />
Затем добавьте элемент управления метками (например, с помощью элемента управления HTML с тем же именем или <asp:Label> веб-элементом управления), который будет отображать результат вызова веб-службы.
<label id="myDate" runat="server" />
Затем для активации динамической совокупности будет использоваться кнопка HTML (как элемент управления HTML, так как не требуется обратная отправка на сервер):
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Наконец, нам нужен DynamicPopulateExtender контроллер для настройки соединений. Следующие атрибуты будут заданы (помимо очевидных иIDrunat="server"):
-
TargetControlIDгде поместить результат вызова веб-службы -
ServicePathпуть к веб-службе (опущен, если вы хотите использовать метод страницы) -
ServiceMethodимя веб-метода или метода страницы -
ContextKeyсведения о контексте, отправляемые в веб-службу -
PopulateTriggerControlIDэлемент, который активирует вызов веб-службы -
ClearContentsDuringUpdateСледует ли очистить целевой элемент во время вызова веб-службы.
Как видите, для элемента управления требуется некоторая информация, но расстановка всего по местам достаточно проста. Ниже приведена разметка для DynamicPopulateExtender элемента управления в текущем сценарии:
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
Запустите страницу ASP.NET в браузере и нажмите кнопку, вы получите текущую дату в формате месяц-день-год.
Нажатие кнопки извлекает дату с сервера (щелкните, чтобы просмотреть изображение полного размера)