Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El control DynamicPopulate del kit de herramientas de control de AJAX de ASP.NET llama a un servicio web (o método de página) y rellena el valor resultante en un control de destino en la página, sin una actualización de página.
Visión general
El DynamicPopulate control del Kit de herramientas de control de AJAX de ASP.NET llama a un servicio web (o método de página) y rellena el valor resultante en un control de destino de la página, sin refrescar la página. En este tutorial se muestra cómo configurar esto.
Pasos
En primer lugar, necesita un servicio web de ASP.NET que implemente el método al que llamará DynamicPopulate. La clase de servicio web requiere el ScriptService atributo que se define en Microsoft.Web.Script.Services; de lo contrario, ASP.NET AJAX no puede crear el proxy javaScript del lado cliente para el servicio web que, a su vez, es necesario para DynamicPopulate.
El método web debe esperar un argumento de tipo cadena, denominado contextKey, ya que el DynamicPopulate control envía un fragmento de información de contexto con cada llamada de servicio web. El siguiente servicio web devuelve la fecha actual en un formato representado por el contextKey argumento :
<%@ 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
A continuación, el servicio web se guarda como DynamicPopulate.vb.asmx. Como alternativa, podría implementar el método getDate() como un método de página dentro de la página ASP.NET real con el control DynamicPopulate.
En el paso siguiente, cree un nuevo archivo ASP.NET. Como siempre, el primer paso es incluir el ScriptManager en la página actual para cargar la biblioteca AJAX de ASP.NET y hacer que el Kit de herramientas de controles funcione:
<asp:ScriptManager ID="asm" runat="server" />
A continuación, agregue un control de etiqueta (por ejemplo, mediante el control HTML del mismo nombre o el <asp:Label control web /> ), que mostrará posteriormente el resultado de la llamada al servicio web.
<label id="myDate" runat="server" />
Se usará un botón HTML (como control HTML, ya que no se requiere un postback al servidor) para desencadenar la población dinámica:
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Por último, necesitamos el control DynamicPopulateExtender para configurar todo. Los atributos siguientes se establecerán (aparte de los obvios ID y runat="server"):
-
TargetControlIDdónde colocar el resultado de la llamada de servicio web -
ServicePathruta de acceso al servicio web (omita si desea usar un método de página) -
ServiceMethodnombre del método web o del método de página -
ContextKeyinformación de contexto que se va a enviar al servicio web -
PopulateTriggerControlIDelemento que desencadena la llamada de servicio web -
ClearContentsDuringUpdatesi se va a vaciar el elemento de destino durante la llamada al servicio web
Como puede ver, el control requiere cierta información, pero poner todo en su lugar es bastante sencillo. Aquí está el código de marcado para el DynamicPopulateExtender control en el escenario actual.
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
Ejecute la página ASP.NET en el explorador y haga clic en el botón; recibirá la fecha actual en formato mes-día-año.
Un clic en el botón recupera la fecha del servidor (haga clic para ver la imagen de tamaño completo).