Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Christian Wenz
Anstatt es einem Benutzer zu erlauben, einen Wert in ein Kontrollkästchen einzugeben, könnte sich ein numerisches Steuerelement nach oben/unten (das unter Windows und anderen Betriebssystemen vorhanden ist) als komfortabler erweisen. Standardmäßig erhöht oder verringert das NumericUpDown-Steuerelement immer einen Wert um 1, aber ein Webdienst beweist mehr Flexibilität.
Übersicht
Anstatt es einem Benutzer zu erlauben, einen Wert in ein Kontrollkästchen einzugeben, könnte sich ein numerisches Steuerelement nach oben/unten (das unter Windows und anderen Betriebssystemen vorhanden ist) als komfortabler erweisen. Standardmäßig erhöht oder verringert das NumericUpDown Steuerelement immer einen Wert um 1, aber ein Webdienst beweist mehr Flexibilität.
Schritte
Das ASP.NET AJAX Control Toolkit enthält den NumericUpDown Extender, der automatisch zwei Schaltflächen zu einem Textfeld hinzufügt: eine zum Erhöhen des Werts, eine zum Verringern. Das Steuerelement unterstützt jedoch auch einen Webdienstaufruf (oder Seitenmethodenaufruf). Wenn auf die Schaltfläche nach oben oder unten geklickt wird, stellt der JavaScript-Code eine Verbindung mit dem Webserver und führt dort eine Methode aus. Die Methodensignatur ist die folgende:
Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer
Das current Argument ist der aktuelle Wert im Textfeld. Das tag Attribut ist zusätzliche Kontextdaten, die als Eigenschaft des NumericUpDown Extenders festgelegt werden können (aber nicht erforderlich).
Für diese Stichprobe darf die numerische Aufwärts-/Abwärtssteuerung nur Werte zulassen, die Mächte von zwei sind: 1, 2, 4, 8, 16, 32, 64 usw. Daher muss die Methode, die ausgeführt wird, wenn der Benutzer den Wert erhöhen möchte, den alten Wert verdoppeln; Die andere Methode muss den Wert durch zwei dividieren. Hier ist also der vollständige Webdienst:
<%@ 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
Erstellen Sie schließlich eine neue ASP.NET Seite. Wie üblich benötigen Sie ein ScriptManager Steuerelement, ein TextBox Steuerelement und ein NumericUpDownExtender Steuerelement. Für letztere müssen Sie die Webdienstinformationen angeben:
-
ServiceDownMethodName der Down-Webmethode oder Pagemethode -
ServiceDownPathPfad zum Webdienst mit der Down-Service-Methode; Weglassen, wenn Sie eine Seitenmethode verwenden -
ServiceUpMethodName der up-Webmethode oder Seitenmethode -
ServiceUpPathPfad zum Webdienst mit der Up-Service-Methode; Weglassen, wenn Sie eine Seitenmethode verwenden
Hier sehen Sie das vollständige Markup für die Seite:
<%@ 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>
Wenn Sie die Seite ausführen, beachten Sie, wie der Wert im Textfeld immer verdoppelt wird, wenn Sie auf die obere Schaltfläche klicken, und wird halbiert, wenn Sie auf die untere Schaltfläche klicken.
Nur Zahlen, die eine Potenz von 2 aufweisen, werden angezeigt (Klicken Sie, um das Bild in voller Größe anzuzeigen)