Vytvoření ovládacího prvku Numeric Up/Down webovou službou typu back-end (VB)
Místo toho, aby uživatel mohl zadat hodnotu do zaškrtávacího políčka, by se ovládací prvek pro číslo nahoru a dolů (který existuje ve Windows a jiných operačních systémech) mohl ukázat jako pohodlnější. Ve výchozím nastavení ovládací prvek NumericUpDown vždy zvyšuje nebo snižuje hodnotu o 1, ale webová služba ukazuje větší flexibilitu.
Přehled
Místo toho, aby uživatel mohl zadat hodnotu do zaškrtávacího políčka, by se ovládací prvek pro číslo nahoru a dolů (který existuje ve Windows a jiných operačních systémech) mohl ukázat jako pohodlnější. Ve výchozím nastavení NumericUpDown
ovládací prvek vždy zvyšuje nebo snižuje hodnotu o 1, ale webová služba ukazuje větší flexibilitu.
Postup
Sada ASP.NET AJAX Control Toolkit obsahuje NumericUpDown
extender, který automaticky přidá dvě tlačítka do textového pole: jedno pro zvýšení jeho hodnoty a druhé pro její snížení. Ovládací prvek však podporuje také volání webové služby (nebo volání metody stránky). Při každém kliknutí na tlačítko nahoru nebo dolů se kód JavaScriptu připojí k webovému serveru a spustí tam metodu. Podpis metody je následující:
Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer
Argument current
je aktuální hodnota v textovém poli. tag
Atribut jsou další kontextová data, která lze nastavit jako vlastnost extenderu NumericUpDown
(ale není vyžadována).
Pro tento vzorek musí číselný ovládací prvek nahoru/dolů povolit pouze hodnoty, které jsou mocniny dvou: 1, 2, 4, 8, 16, 32, 64 atd. Proto metoda spuštěna, když uživatel chce zvýšit hodnotu musí zdvojnásobit starou hodnotu; druhá metoda musí hodnotu vydělit dvěma. Tady je kompletní webová služba:
<%@ 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
Nakonec vytvořte novou ASP.NET stránku. Jako obvykle potřebujete ScriptManager
ovládací prvek, TextBox
ovládací prvek a NumericUpDownExtender
ovládací prvek. V případě druhé musíte poskytnout informace o webové službě:
ServiceDownMethod
název webové metody nebo metody stránky mimo provozServiceDownPath
cesta k webové službě s metodou down service; Pokud používáte metodu stránky, vynecháte ji.ServiceUpMethod
name of the web method or page methodServiceUpPath
cesta k webové službě s metodou up service; Pokud používáte metodu stránky, vynecháte ji.
Tady je kompletní kód stránky:
<%@ 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>
Pokud spustíte stránku, všimněte si, že hodnota v textovém poli se vždy zdvojnásobí, když kliknete na horní tlačítko, a když kliknete na dolní tlačítko, sníží se na polovinu.
Zobrazí se pouze čísla, která mají mocninu 2 (kliknutím zobrazíte obrázek v plné velikosti).