使用 Web 服務後端建立數值向上/向下控制項 (VB)
數字向上/向下控制項 (存在於 Windows 和其他作業系統上) 可能比讓使用者在核取方塊中輸入值更方便。 預設情況下,NumericUpDown 控制項會始終將值增加或減少 1,但 Web 服務證明具有更大的靈活性。
概觀
數字向上/向下控制項 (存在於 Windows 和其他作業系統上) 可能比讓使用者在核取方塊中輸入值更方便。 預設情況下,NumericUpDown
控制項始終將值增加或減少 1,但 Web 服務證明具有更大的靈活性。
步驟
ASP.NET AJAX 控制項工具包包含一個 NumericUpDown
擴充器,它會自動為文字方塊新增兩個按鈕:一個用於增加其值,一個用於減少其值。 不過,該控制項也支援 Web 服務呼叫 (或稱頁面方法呼叫)。 每當您按一下向上或向下按鈕時,JavaScript 程式碼就會連接到 Web 伺服器並在那裡執行一個方法。 方法簽名如下:
Function MethodName(ByVal current As Integer, ByVal tag As String) As Integer
current
參數是文字方塊中的目前值;tag
屬性是可以設定為 NumericUpDown
擴充功能的屬性的附加上下文資料 (但不是必需的)。
對於此範例,數字向上/向下控制應僅允許使用 2 的冪的值:1、2、4、8、16、32、64 等。 因此,當使用者想要增加該值時執行的方法必須是舊值的兩倍;另一種方法必須將值除以二。 這是完整的 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
最後,建立一個新的 ASP.NET 頁面。 像往常一樣,您需要一個 ScriptManager
控制項、一個 TextBox
控制項和一個 NumericUpDownExtender
控制項。 對於後者,您必須提供網路服務資訊:
ServiceDownMethod
下網方法或頁面方法的名稱- 使用 down service 方法存取 Web 服務的
ServiceDownPath
路徑;如果您使用的是頁面方法,則省略 - up web 方法或頁面方法的
ServiceUpMethod
名稱 - 使用 up service 方法存取 Web 服務的
ServiceUpPath
路徑;如果您使用的是頁面方法,則省略
這是頁面的完整標記:
<%@ 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>
如果執行該頁面,請注意當您點擊上面的按鈕時文字方塊中的值總是加倍,而當您點擊下面的按鈕時文字方塊中的值總是減半。
僅顯示 2 的冪的數字 (點擊可看大圖)