Web サービス バックエンドで数値を上げ下げするコントロールを作成する (VB)

作成者: Christian Wenz

PDF のダウンロード

ユーザーにチェック ボックスに値を入力させる代わりに、数値のアップ/ダウン コントロール (Windows やその他のオペレーティング システムに存在する) の方が快適である可能性があります。 既定では、NumericUpDown コントロールは常に値を 1 ずつ増減しますが、Web サービスは柔軟性を高めます。

概要

ユーザーにチェック ボックスに値を入力させる代わりに、数値のアップ/ダウン コントロール (Windows やその他のオペレーティング システムに存在する) の方が快適である可能性があります。 既定では、コントロールは NumericUpDown 常に値を 1 ずつ増減しますが、Web サービスは柔軟性を高めます。

手順

ASP.NET AJAX コントロール ツールキットには、テキスト ボックスに自動的に 2 つのボタンを追加するエクステンダーが含まれています NumericUpDown 。1 つは値を大きくするため、もう 1 つは小さくするためのボタンです。 ただし、コントロールは Web サービス呼び出し (またはページ メソッド呼び出し) もサポートしています。 上または下のボタンがクリックされるたびに、JavaScript コードは Web サーバーに接続し、そこでメソッドを実行します。 メソッドシグネチャは次のとおりです。

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

引数は current テキスト ボックス tag の現在の値です。属性は、エクステンダーのプロパティとして設定できる追加の NumericUpDown コンテキスト データです (ただし、必須ではありません)。

このサンプルでは、数値のアップ/ダウン コントロールでは、1、2、4、8、16、32、64 などの 2 つの累乗の値のみを使用できます。 したがって、ユーザーが値を増やす場合に実行されるメソッドは、古い値を 2 倍にする必要があります。もう 1 つのメソッドでは、値を 2 で除算する必要があります。 完全な 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 ページを作成します。 通常どおり、コントロール、コントロール、TextBoxおよび コントロールが必要ScriptManagerですNumericUpDownExtender。 後者の場合は、Web サービス情報を指定する必要があります。

  • ServiceDownMethod ダウン Web メソッドまたはページ メソッドの名前
  • ServiceDownPath ダウン サービス メソッドを使用して Web サービスへのパス。ページ メソッドを使用している場合は 省略
  • ServiceUpMethod アップ Web メソッドまたはページ メソッドの名前
  • ServiceUpPath up service メソッドを使用して Web サービスへのパス。ページ メソッドを使用している場合は 省略

ページの完全なマークアップを次に示します。

<%@ 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 倍になり、下のボタンをクリックすると半分になります。

2 の累乗である数値のみが表示されます

2 の累乗の数値のみが表示されます (フルサイズの画像を表示する場合はクリックします)