Web サービス バックエンドで数値を上げ下げするコントロールを作成する (VB)
ユーザーにチェック ボックスに値を入力させる代わりに、数値のアップ/ダウン コントロール (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 の累乗の数値のみが表示されます (フルサイズの画像を表示する場合はクリックします)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示