使用 Web 服务后端创建数字增大/减小控件 (C#)
Windows 和其他操作系统上的数值向上/向下控制 () 可以证明更舒适,而不是让用户在检查框中键入值。 默认情况下,NumericUpDown 控件始终将值增加或减少 1,但 Web 服务具有更大的灵活性。
概述
Windows 和其他操作系统上的数值向上/向下控制 () 可以证明更舒适,而不是让用户在检查框中键入值。 默认情况下,控件 NumericUpDown
始终将值增加或减少 1,但 Web 服务具有更大的灵活性。
步骤
ASP.NET AJAX 控件工具包包含 NumericUpDown
扩展器,该扩展器会自动向文本框添加两个按钮:一个用于增加其值,一个用于减小值。 但是, 控件还支持 web 服务调用 (或页面方法调用) 。 每当单击向上或向下按钮时,JavaScript 代码就会连接到 Web 服务器,并在其中执行方法。 方法签名如下:
public int MethodName(int current, string tag) {}
参数 current
是文本框中的当前值; tag
属性是可以设置为扩展器 (但 NumericUpDown
不需要) 的附加上下文数据。
对于此示例,数值向上/向下控件应仅允许两个幂的值:1、2、4、8、16、32、64 等。 因此,当用户想要增加值时执行的方法必须将旧值加倍;另一个方法必须将值除以 2。 下面是完整的 Web 服务:
<%@ 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 页。 像往常一样,你需要一个 ScriptManager
控件、一个 TextBox
控件和一个 NumericUpDownExtender
控件。 对于后者,必须提供 Web 服务信息:
ServiceDownMethod
down Web 方法或页面方法的名称ServiceDownPath
使用 down 服务方法指向 Web 服务的路径;如果使用的是页面方法,请省略ServiceUpMethod
up Web 方法或页面方法的名称ServiceUpPath
使用 up 服务方法访问 Web 服务的路径;如果使用的是页面方法,请省略
下面是页面的完整标记:
<%@ 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 的数字 (单击以查看全尺寸图像)