Web Hizmeti Arka Ucuna Sahip Sayısal Yukarı/Aşağı Denetimi Oluşturma (VB)

Christian Wenz tarafından

PDF’yi İndir

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 atla
  • ServiceUpMethod 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ünde sayılar görünür

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)