Web Hizmeti Arka Ucuna Sahip Sayısal Yukarı/Aşağı Denetimi Oluşturma (VB)
Christian Wenz tarafından
Kullanıcının onay kutusuna bir değer yazmasına izin vermek yerine, sayısal yukarı/aşağı denetimi (Windows'ta ve diğer işletim sistemlerinde var olan) daha rahat kanıtlanabilir. Varsayılan olarak NumericUpDown denetimi bir değeri her zaman 1 artırır veya azaltır, ancak web hizmeti daha fazla esneklik sağlar.
Genel Bakış
Kullanıcının onay kutusuna bir değer yazmasına izin vermek yerine, sayısal yukarı/aşağı denetimi (Windows'ta ve diğer işletim sistemlerinde var olan) daha rahat kanıtlanabilir. Varsayılan olarak, NumericUpDown
denetim bir değeri her zaman 1 artırır veya azaltır, ancak bir web hizmeti daha fazla esneklik sağlar.
Adımlar
ASP.NET AJAX Denetim Araç Seti, bir metin kutusuna otomatik olarak iki düğme ekleyen genişleticiyi içerir NumericUpDown
: Biri değerini artırmak için, biri de onu azaltmak için. Ancak denetim bir web hizmeti çağrısını (veya sayfa yöntemi çağrısını) da destekler. Yukarı veya aşağı düğmesine her tıklandığında JavaScript kodu web sunucusuna bağlanır ve orada bir yöntem yürütür. Yöntem imzası aşağıdaki gibidir:
Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer
current
bağımsız değişkeni metin kutusundaki geçerli değerdir; tag
özniteliği genişleticinin özelliği olarak ayarlanabilen NumericUpDown
(ancak gerekli olmayan) ek bağlam verileridir.
Bu örnek için, sayısal yukarı/aşağı denetimi yalnızca ikinin gücü olan değerlere izin verecektir: 1, 2, 4, 8, 16, 32, 64 vb. Bu nedenle, kullanıcı değeri artırmak istediğinde yürütülen yöntemin eski değerin iki katı olması gerekir; diğer yöntem değeri ikiye bölmelidir. İşte tam web hizmeti:
<%@ 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
Son olarak, yeni bir ASP.NET sayfası oluşturun. Her zamanki gibi bir ScriptManager
denetime, denetime TextBox
ve denetime ihtiyacınız vardır NumericUpDownExtender
. İkincisi için web hizmeti bilgilerini sağlamanız gerekir:
ServiceDownMethod
aşağı web yönteminin veya sayfa yönteminin adıServiceDownPath
aşağı hizmet yöntemiyle web hizmetinin yolu; Sayfa yöntemi kullanıyorsanız atlaServiceUpMethod
yukarı web yönteminin veya sayfa yönteminin adıServiceUpPath
yukarı hizmet yöntemiyle web hizmetinin yolu; Sayfa yöntemi kullanıyorsanız atla
Sayfa için tam işaretleme aşağıdadır:
<%@ 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>
Sayfayı çalıştırırsanız, üstteki düğmeye tıkladığınızda metin kutusundaki değerin her zaman iki katına çıktığına ve alttaki düğmeye tıkladığınızda ikiye katlandığına dikkat edin.
Yalnızca 2'nin gücündeki sayılar görüntülenir (Tam boyutlu görüntüyü görüntülemek için tıklayın)