以動態方式填入控制項 (VB)
作者 :一個是一個
ASP.NET AJAX 控制項工具組中的 DynamicPopulate 控制項會呼叫 Web 服務 (或頁面方法) ,並在頁面上將產生的值填入目標控制項,而不需重新整理頁面。
概觀
DynamicPopulate
ASP.NET AJAX Control Toolkit 中的控制項會呼叫 Web 服務 (或頁面方法,) 並將產生的值填入頁面上的目標控制項,而不需重新整理頁面。 本教學課程說明如何設定此設定。
步驟
首先,您需要 ASP.NET Web 服務,以實作 所 DynamicPopulate
呼叫的方法。 Web 服務類別需要 ScriptService
定義于 內的 Microsoft.Web.Script.Services
屬性,否則 ASP.NET AJAX 無法為需要的 DynamicPopulate
Web 服務建立用戶端 JavaScript Proxy。
Web 方法必須預期一個字串類型的引數,稱為 contextKey
,因為 DynamicPopulate
控制項會在每個 Web 服務呼叫中傳送一段內容資訊。 下列 Web 服務會以 引數所 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
Web 服務接著會儲存為 DynamicPopulate.vb.asmx
。 或者,您可以使用 getDate()
控制項,在實際 ASP.NET 網頁中實作 方法做為頁面 DynamicPopulate
方法。
在下一個步驟中,建立新的 ASP.NET 檔案。 一如往常,第一個步驟是將 包含在 ScriptManager
目前頁面中以載入 ASP.NET AJAX 程式庫,並讓 Control Toolkit 運作:
<asp:ScriptManager ID="asm" runat="server" />
然後,使用相同名稱的 HTML 控制項,或 <asp:Label
/ > web 控制項) 新增標籤控制項 (,稍後會顯示 Web 服務呼叫的結果。
<label id="myDate" runat="server" />
HTML 按鈕 (為 HTML 控制項,因為我們不需要回傳至伺服器) 接著會用來觸發動態母體擴展:
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
最後,我們需要 DynamicPopulateExtender
控制項來連接專案。 下列屬性會設定 (與明顯的屬性, ID
以及 runat
="server"
) :
TargetControlID
從 Web 服務呼叫放置結果的位置ServicePath
如果您想要使用頁面方法, (省略 Web 服務的路徑)ServiceMethod
Web 方法或頁面方法的名稱ContextKey
要傳送至 Web 服務的內容資訊PopulateTriggerControlID
觸發 Web 服務呼叫的專案ClearContentsDuringUpdate
是否要在 Web 服務呼叫期間清空目標專案
如您所見,控制項需要一些資訊,但將所有專案放在原處相當簡單。 以下是目前案例中控制項的 DynamicPopulateExtender
標記:
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
在瀏覽器中執行 [ASP.NET] 頁面,然後按一下按鈕;您會收到月-日-年格式的目前日期。
按一下按鈕會從伺服器擷取日期, (按一下即可檢視大小完整的影像)