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
Alih-alih membiarkan pengguna mengetikkan nilai ke dalam kotak centang, kontrol naik/turun numerik (yang ada di Windows dan sistem operasi lainnya) dapat terbukti lebih nyaman. Secara default, kontrol NumericUpDown selalu meningkatkan atau mengurangi nilai sebesar 1, tetapi layanan web membuktikan lebih banyak fleksibilitas.
Gambaran Umum
Alih-alih membiarkan pengguna mengetikkan nilai ke dalam kotak centang, kontrol naik/turun numerik (yang ada di Windows dan sistem operasi lainnya) dapat terbukti lebih nyaman. Secara default, NumericUpDown
kontrol selalu meningkatkan atau mengurangi nilai sebesar 1, tetapi layanan web membuktikan lebih banyak fleksibilitas.
Langkah-langkah
Toolkit Kontrol AJAX ASP.NET berisi NumericUpDown
extender yang secara otomatis menambahkan dua tombol ke kotak teks: Satu untuk meningkatkan nilainya, satu untuk menguranginya. Namun kontrol juga mendukung panggilan layanan web (atau panggilan metode halaman). Setiap kali tombol naik atau turun diklik, kode JavaScript tersambung ke server web dan menjalankan metode di sana. Tanda tangan metode adalah yang berikut:
Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer
Argumen current
adalah nilai saat ini dalam kotak teks; tag
atribut adalah data konteks tambahan yang dapat diatur sebagai properti extender NumericUpDown
(tetapi tidak diperlukan).
Untuk sampel ini, kontrol naik/turun numerik hanya akan memungkinkan nilai yang merupakan kekuatan dua: 1, 2, 4, 8, 16, 32, 64, dan sebagainya. Oleh karena itu, metode yang dijalankan ketika pengguna ingin meningkatkan nilai harus menggandakan nilai lama; metode lain harus membagi nilai dengan dua. Jadi berikut adalah layanan web lengkap:
<%@ WebService Language="VB" Class="NumericUpDown1" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
<System.Web.Script.Services.ScriptService()> _
Public Class NumericUpDown1
Inherits System.Web.Services.WebService
<WebMethod()> _
Function Up(ByVal current As Integer, ByVal tag As String) As Integer
If current <= 536870912 Then
Return current * 2
Else
Return current
End If
End Function
<WebMethod()> _
Function Down(ByVal current As Integer, ByVal tag As String) As Integer
If current >= 2 Then
Return CInt(current / 2)
Else
Return current
End If
End Function
End Class
Terakhir, buat halaman ASP.NET baru. Seperti biasa, Anda membutuhkan ScriptManager
kontrol, kontrol, TextBox
dan NumericUpDownExtender
kontrol. Untuk yang terakhir, Anda harus memberikan informasi layanan web:
-
ServiceDownMethod
nama metode web atau metode halaman yang tidak berfungsi -
ServiceDownPath
jalur ke layanan web dengan metode layanan tidak berfungsi; hilangkan jika Anda menggunakan metode halaman -
ServiceUpMethod
nama metode web atau metode halaman atas -
ServiceUpPath
jalur ke layanan web dengan metode layanan up; hilangkan jika Anda menggunakan metode halaman
Berikut adalah markup lengkap untuk halaman:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Control Toolkit</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="asm" runat="server" />
<div>
How many MB do you want? <asp:TextBox ID="TextBox1" Text="32" runat="server" />
<ajaxToolkit:NumericUpDownExtender ID="nud" runat="server"
TargetControlID="TextBox1" Width="100"
ServiceUpPath="NumericUpDown1.vb.asmx" ServiceDownPath="NumericUpDown1.vb.asmx"
ServiceUpMethod="Up" ServiceDownMethod="Down" />
</div>
</form>
</body>
</html>
Jika Anda menjalankan halaman, perhatikan bagaimana nilai dalam kotak teks selalu dua kali lipat ketika Anda mengklik tombol atas, dan dibelah dua saat Anda mengklik tombol bawah.
Hanya angka yang merupakan kekuatan 2 yang muncul (Klik untuk melihat gambar ukuran penuh)