Tworzenie kontrolki Numeric Up/Down z zapleczem usługi internetowej (VB)

Autor Christian Wenz

Pobierz kod lub Pobierz plik PDF

Zamiast zezwalać użytkownikowi na wpisywanie wartości w polu wyboru, kontrolka w górę/w dół (która istnieje w systemie Windows i innych systemach operacyjnych) może być bardziej wygodna. Domyślnie formant NumericUpDown zawsze zwiększa lub zmniejsza wartość o 1, ale usługa sieci Web zapewnia większą elastyczność.

Omówienie

Zamiast zezwalać użytkownikowi na wpisywanie wartości w polu wyboru, kontrolka w górę/w dół (która istnieje w systemie Windows i innych systemach operacyjnych) może być bardziej wygodna. Domyślnie formant NumericUpDown zawsze zwiększa lub zmniejsza wartość o 1, ale usługa sieci Web zapewnia większą elastyczność.

Kroki

Zestaw narzędzi ASP.NET AJAX Control Toolkit zawiera rozszerzenie NumericUpDown, które automatycznie dodaje dwa przyciski do pola tekstowego: jeden w celu zwiększenia jego wartości, jeden do jego zmniejszenia. Jednak kontrolka obsługuje również wywołanie usługi sieci Web (lub wywołanie metody strony). Za każdym razem, gdy zostanie kliknięty przycisk w górę lub w dół, kod JavaScript nawiązuje połączenie z serwerem sieci Web i wykonuje metodę. Podpis metody jest następujący:

Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer

current argument jest bieżącą wartością w polu tekstowym; atrybut tag to dodatkowe dane kontekstowe, które można ustawić jako właściwość rozszerzenia NumericUpDown (ale nie jest to wymagane).

W tym przykładzie numeryczna kontrolka up/down zezwala tylko na wartości, które są następujące: 1, 2, 4, 8, 16, 32, 64 itd. W związku z tym Metoda wykonywana, gdy użytkownik chce zwiększyć wartość, musi być podwójnie stara wartość; Druga metoda musi dzielić wartość o dwa. Oto kompletna usługa sieci Web:

<%@ 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

Na koniec Utwórz nową stronę ASP.NET. Jak zwykle potrzebna jest kontrolka ScriptManager, kontrolka TextBox i kontrolka NumericUpDownExtender. Dla tej ostatniej należy podać informacje o usłudze sieci Web:

  • Nazwa ServiceDownMethod lub metoda strony sieci Web w dół
  • ServiceDownPath ścieżkę do usługi sieci Web przy użyciu metody usługi w dół. Pomiń, jeśli używasz metody strony
  • ServiceUpMethod nazwę metody sieci Web lub metody strony
  • ServiceUpPath ścieżkę do usługi sieci Web przy użyciu metody usługi up; Pomiń, jeśli używasz metody strony

Oto kompletna Adiustacja strony:

<%@ 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>

Jeśli uruchomisz stronę, Zauważ, że wartość w polu tekstowym zawsze podwaja się po kliknięciu górnego przycisku i jest wyświetlana po kliknięciu dolnego przycisku.

wyświetlane są tylko liczby, które są potęgą 2

Wyświetlane są tylko liczby, które są potęgą 2 (kliknij, aby wyświetlić obraz o pełnym rozmiarze)