웹 서비스 백 엔드를 사용하여 숫자 위로/아래로 컨트롤 만들기(C#)
사용자가 검사 상자에 값을 입력하도록 하는 대신 숫자 위쪽/아래쪽 컨트롤(Windows 및 기타 운영 체제에 있음)이 더 편안할 수 있습니다. 기본적으로 NumericUpDown 컨트롤은 항상 값을 1씩 늘리거나 줄이지만 웹 서비스는 더 많은 유연성을 증명합니다.
개요
사용자가 검사 상자에 값을 입력하도록 하는 대신 숫자 위쪽/아래쪽 컨트롤(Windows 및 기타 운영 체제에 있음)이 더 편안할 수 있습니다. 기본적으로 컨트롤은 NumericUpDown
항상 값을 1씩 늘리거나 줄이지만 웹 서비스는 더 많은 유연성을 증명합니다.
단계
ASP.NET AJAX 컨트롤 도구 키트에는 텍스트 상자에 두 개의 단추를 자동으로 추가하는 extender가 포함되어 NumericUpDown
있습니다. 하나는 값을 높이기 위한 단추이며, 하나는 감소하기 위한 것입니다. 그러나 컨트롤은 웹 서비스 호출(또는 페이지 메서드 호출)도 지원합니다. 위쪽 또는 아래쪽 단추를 클릭할 때마다 JavaScript 코드는 웹 서버에 연결하고 메서드를 실행합니다. 메서드 서명은 다음과 같습니다.
public int MethodName(int current, string tag) {}
인수는 current
텍스트 상자의 현재 값입니다. tag
특성은 extender의 NumericUpDown
속성으로 설정할 수 있는 추가 컨텍스트 데이터입니다(필수는 아님).
이 샘플의 경우 숫자 위쪽/아래쪽 컨트롤은 1, 2, 4, 8, 16, 32, 64 등 2의 권한 값만 허용합니다. 따라서 사용자가 값을 늘리려는 경우 실행되는 메서드는 이전 값의 두 배가 되어야 합니다. 다른 메서드는 값을 2로 나누어야 합니다. 전체 웹 서비스는 다음과 같습니다.
<%@ WebService Language="C#" Class="NumericUpDown1" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[System.Web.Script.Services.ScriptService]
public class NumericUpDown1 : System.Web.Services.WebService
{
[WebMethod]
public int Up(int current, string tag)
{
if (current <= 536870912)
{
return current * 2;
}
else
{
return current;
}
}
[WebMethod]
public int Down(int current, string tag)
{
if (current >= 2)
{
return (int)(current / 2);
}
else
{
return current;
};
}
}
마지막으로 새 ASP.NET 페이지를 만듭니다. 평소와 같이 컨트롤, TextBox
컨트롤 및 컨트롤이 NumericUpDownExtender
필요합니다ScriptManager
. 후자의 경우 웹 서비스 정보를 제공해야 합니다.
ServiceDownMethod
다운 웹 메서드 또는 페이지 메서드의 이름ServiceDownPath
다운 서비스 메서드를 사용하여 웹 서비스에 대한 경로입니다. 페이지 메서드를 사용하는 경우 생략ServiceUpMethod
up 웹 메서드 또는 페이지 메서드의 이름ServiceUpPath
up 서비스 메서드를 사용하여 웹 서비스에 대한 경로입니다. 페이지 메서드를 사용하는 경우 생략
페이지의 전체 태그는 다음과 같습니다.
<%@ Page Language="C#" %>
<!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.cs.asmx"
ServiceDownPath="NumericUpDown1.cs.asmx"
ServiceUpMethod="Up" ServiceDownMethod="Down" />
</div>
</form>
</body>
</html>
페이지를 실행하는 경우 위쪽 단추를 클릭할 때 텍스트 상자의 값이 항상 두 배로 표시되고 아래쪽 단추를 클릭하면 절반으로 줄입니다.
2의 강력한 숫자만 표시됩니다(전체 크기 이미지를 보려면 클릭).
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기