Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovládací prvek DynamicPopulate v ASP.NET AJAX Control Toolkit volá webovou službu (nebo metodu stránky) a vyplní výslednou hodnotu do cílového ovládacího prvku na stránce bez aktualizace stránky.
Přehled
Ovládací DynamicPopulate prvek v ASP.NET AJAX Control Toolkit volá webovou službu (nebo metodu stránky) a vyplní výslednou hodnotu do cílového ovládacího prvku na stránce bez aktualizace stránky. V tomto kurzu se dozvíte, jak to nastavit.
Postup
Nejprve potřebujete webovou službu ASP.NET, která implementuje metodu, která má být volána .DynamicPopulate Třída webové služby vyžaduje ScriptService atribut, který je definován v Microsoft.Web.Script.Services. V opačném případě ASP.NET AJAX nemůže vytvořit javascriptový proxy server na straně klienta pro webovou službu, který je následně vyžadován nástrojem DynamicPopulate.
Webová metoda musí očekávat jeden argument typu řetězec s názvem contextKey, protože DynamicPopulate ovládací prvek při každém volání webové služby odesílá jednu část kontextové informace. Následující webová služba vrátí aktuální datum ve formátu reprezentované argumentem 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
Webová služba se pak uloží jako DynamicPopulate.vb.asmx. Alternativně můžete metodu getDate() implementovat jako metodu stránky v rámci skutečné ASP.NET stránky s ovládacím DynamicPopulate prvku.
V dalším kroku vytvořte nový soubor ASP.NET. Jako vždy je prvním krokem zahrnutí ScriptManager na aktuální stránku, aby se načetla knihovna ASP.NET AJAX a aby sada nástrojů Control Toolkit fungovala:
<asp:ScriptManager ID="asm" runat="server" />
Potom přidejte ovládací prvek popisku (například pomocí ovládacího prvku HTML se stejným názvem nebo <asp:Label ovládacího prvku /> web), který později zobrazí výsledek volání webové služby.
<label id="myDate" runat="server" />
Tlačítko HTML (jako ovládací prvek HTML, protože nevyžadujeme postback na server) se pak použije k aktivaci dynamického souboru:
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Nakonec potřebujeme DynamicPopulateExtender ovládací prvek, který vše sdružuje. Nastaví se následující atributy (kromě zřejmých ID atributů a=runat"server" ):
-
TargetControlIDkam vložit výsledek z volání webové služby -
ServicePathcesta k webové službě (vynechat, pokud chcete použít metodu stránky) -
ServiceMethodnázev webové metody nebo metody stránky -
ContextKeykontextové informace, které se mají odeslat do webové služby -
PopulateTriggerControlIDelement, který aktivuje volání webové služby -
ClearContentsDuringUpdatezda se má vyprázdnit cílový element během volání webové služby
Jak vidíte, ovládací prvek vyžaduje určité informace, ale uvedení všeho na místo je poměrně jednoduché. Tady je kód pro DynamicPopulateExtender ovládací prvek v aktuálním scénáři:
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
Spusťte stránku ASP.NET v prohlížeči a klikněte na tlačítko ; aktuální datum obdržíte ve formátu měsíc-den-rok.
Kliknutím na tlačítko se načte datum ze serveru (kliknutím zobrazíte obrázek v plné velikosti).