Web Hizmeti Arka Ucuna Sahip Sayısal Yukarı/Aşağı Denetimi Oluşturma (VB)Creating a Numeric Up/Down Control with a Web Service Backend (VB)

Hristia WENZ tarafındanby Christian Wenz

Kodu indirin veya PDF 'yi indirinDownload Code or Download PDF

Bir kullanıcının onay kutusuna değer yazmalarına izin vermek yerine, sayısal bir yukarı/aşağı denetimi (Windows ve diğer işletim sistemlerinde bulunur) daha rahat bir şekilde kanıtlayabilecek.Instead of letting a user type a value into a check box, a numeric up/down control (that exists on Windows and other operating systems) could prove as more comfortable. Varsayılan olarak, NumericUpDown denetimi her zaman bir değeri 1 artırır veya düşürür, ancak bir Web hizmeti daha fazla esneklik sağlar.By default, the NumericUpDown control always increases or decreases a value by 1, but a web service proves more flexibility.

Genel bakışOverview

Bir kullanıcının onay kutusuna değer yazmalarına izin vermek yerine, sayısal bir yukarı/aşağı denetimi (Windows ve diğer işletim sistemlerinde bulunur) daha rahat bir şekilde kanıtlayabilecek.Instead of letting a user type a value into a check box, a numeric up/down control (that exists on Windows and other operating systems) could prove as more comfortable. Varsayılan olarak, NumericUpDown denetimi her zaman bir değeri 1 artırır veya düşürür, ancak bir Web hizmeti daha fazla esneklik sağlar.By default, the NumericUpDown control always increases or decreases a value by 1, but a web service proves more flexibility.

AdımlarSteps

ASP.NET AJAX denetim araç seti, bir metin kutusuna otomatik olarak iki düğme ekleyen NumericUpDown Genişletici ' i içerir: bir tane, değerini azaltmak için bir tane.The ASP.NET AJAX Control Toolkit contains the NumericUpDown extender which automatically adds two buttons to a text box: One for increasing its value, one for decreasing it. Ancak denetim Ayrıca bir Web hizmeti çağrısını (veya sayfa yöntemi çağrısını) destekler.However the control also supports a web service call (or page method call). Yukarı veya aşağı düğmesine tıklandığında, JavaScript kodu Web sunucusuna bağlanır ve bir yöntemi bu yerde yürütür.Whenever the up or down button is clicked, the JavaScript code connects to the web server and executes a method there. Yöntem imzası aşağıdakilerden biridir:The method signature is the following one:

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, NumericUpDown genişletici 'in bir özelliği olarak ayarlanmakta olan ek bağlam verileri (ancak gerekli değildir).The current argument is the current value in the text box; the tag attribute is additional context data that can be set as a property of the NumericUpDown extender (but is not required).

Bu örnekte, sayısal yukarı/aşağı denetimi yalnızca iki üsleri olan değerlere izin veriyor: 1, 2, 4, 8, 16, 32, 64, vb.For this sample, the numeric up/down control shall only allow values that are powers of two: 1, 2, 4, 8, 16, 32, 64, and so on. Bu nedenle, kullanıcının değeri arttırmak istediğinde yürütülen Yöntem eski değeri Double olmalıdır; diğer yöntem değeri iki ile bölmelidir.Therefore, the method executed when the user wants to increase the value must double the old value; the other method must divide value by two. Web hizmetinin tamamı aşağıda verilmiştir:So here is the complete web service:

<%@ 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.Finally, create a new ASP.NET page. Her zamanki gibi, bir ScriptManager denetimine, TextBox denetimine ve NumericUpDownExtender denetimine ihtiyacınız vardır.As usual, you need a ScriptManager control, a TextBox control and a NumericUpDownExtender control. İkincisi için, Web hizmeti bilgilerini sağlamanız gerekir:For the latter, you have to provide the web service information:

  • aşağı Web yönteminin veya sayfa yönteminin ServiceDownMethod adıServiceDownMethod name of the down web method or page method
  • Web hizmetinin yolunu aşağı hizmet yöntemiyle ServiceDownPath; bir sayfa yöntemi kullanıyorsanız, atlayınServiceDownPath path to the web service with the down service method; omit if you are using a page method
  • up Web yönteminin veya sayfa yönteminin ServiceUpMethod adıServiceUpMethod name of the up web method or page method
  • up hizmeti yöntemiyle Web hizmetinin yolunu ServiceUpPath; bir sayfa yöntemi kullanıyorsanız, atlayınServiceUpPath path to the web service with the up service method; omit if you are using a page method

Sayfa için tüm biçimlendirme aşağıda verilmiştir:Here is the complete markup for the page:

<%@ 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 çıkar ve alt düğmeye tıkladığınızda bu değeri yarıya iner.If you run the page, notice how the value in the text box always doubles when you click on the upper button, and is halved when you click on the lower button.

yalnızca 2 ' nin üssü olan sayılar görüntülenirOnly numbers that are a power of 2 appear

Yalnızca 2 ' nin üssü olan sayılar görüntülenir (tam boyutlu görüntüyü görüntülemek Için tıklayın)Only numbers that are a power of 2 appear (Click to view full-size image)