Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Christian Wenz
Kontrol DynamicPopulate di ASP.NET AJAX Control Toolkit memanggil layanan web (atau metode halaman) dan mengisi nilai yang dihasilkan ke dalam kontrol target di halaman, tanpa refresh halaman.
Gambaran Umum
DynamicPopulate Kontrol di ASP.NET AJAX Control Toolkit memanggil layanan web (atau metode halaman) dan mengisi nilai yang dihasilkan ke dalam kontrol target di halaman, tanpa refresh halaman. Tutorial ini menunjukkan cara mengatur ini.
Langkah-langkah
Pertama-tama, Anda memerlukan Layanan Web ASP.NET yang mengimplementasikan metode yang akan dipanggil oleh DynamicPopulate. Kelas layanan web memerlukan ScriptService atribut yang ditentukan di dalam Microsoft.Web.Script.Services; jika tidak, ASP.NET AJAX tidak dapat membuat proksi JavaScript sisi klien untuk layanan web yang pada gilirannya diperlukan oleh DynamicPopulate.
Metode web harus mengharapkan satu argumen jenis string, yang disebut contextKey, karena DynamicPopulate kontrol mengirim satu bagian informasi konteks dengan setiap panggilan layanan web. Layanan web berikut mengembalikan tanggal saat ini dalam format yang diwakili oleh contextKey argumen:
<%@ 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
Layanan web kemudian disimpan sebagai DynamicPopulate.vb.asmx. Atau, Anda dapat menerapkan getDate() metode sebagai metode halaman dalam halaman ASP.NET aktual dengan DynamicPopulate kontrol.
Pada langkah berikutnya, buat file ASP.NET baru. Seperti biasa, langkah pertama adalah menyertakan ScriptManager di halaman saat ini untuk memuat pustaka AJAX ASP.NET dan membuat Control Toolkit berfungsi:
<asp:ScriptManager ID="asm" runat="server" />
Kemudian, tambahkan kontrol label (misalnya menggunakan kontrol HTML dengan nama yang sama, atau <asp:Label kontrol /> web) yang nantinya akan menampilkan hasil panggilan layanan web.
<label id="myDate" runat="server" />
Tombol HTML (sebagai kontrol HTML, karena kami tidak memerlukan postback ke server) kemudian akan digunakan untuk memicu populasi dinamis:
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Akhirnya, kita perlu DynamicPopulateExtender kontrol untuk menyambungkan semuanya. Atribut berikut akan diatur (terlepas dari atribut yang jelas, ID dan runat="server"):
-
TargetControlIDtempat meletakkan hasil dari panggilan layanan web -
ServicePathjalur ke layanan web (hilangkan jika Anda ingin menggunakan metode halaman) -
ServiceMethodnama metode web atau metode halaman -
ContextKeyinformasi konteks yang akan dikirim ke layanan web -
PopulateTriggerControlIDelemen yang memicu panggilan layanan web -
ClearContentsDuringUpdateapakah akan mengosongkan elemen target selama panggilan layanan web
Seperti yang Anda lihat, kontrol membutuhkan beberapa informasi tetapi menempatkan semuanya ke tempat yang cukup lurus ke depan. Berikut adalah markup untuk DynamicPopulateExtender kontrol dalam skenario saat ini:
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
Jalankan halaman ASP.NET di browser dan klik tombol ; Anda akan menerima tanggal saat ini dalam format bulan-hari-tahun.
Klik tombol mengambil tanggal dari server (Klik untuk melihat gambar ukuran penuh)