Web Hizmeti Arka Ucuna Sahip Sayısal Yukarı/Aşağı Denetimi Oluşturma (C#)
Christian Wenz tarafından
Kullanıcının onay kutusuna bir değer yazmasına izin vermek yerine, sayısal yukarı/aşağı denetimi (Windows'ta ve diğer işletim sistemlerinde var olan) daha rahat kanıtlanabilir. Varsayılan olarak NumericUpDown denetimi bir değeri her zaman 1 artırır veya azaltır, ancak web hizmeti daha fazla esneklik sağlar.
Genel Bakış
Kullanıcının onay kutusuna bir değer yazmasına izin vermek yerine, sayısal yukarı/aşağı denetimi (Windows'ta ve diğer işletim sistemlerinde var olan) daha rahat kanıtlanabilir. Varsayılan olarak, NumericUpDown
denetim bir değeri her zaman 1 artırır veya azaltır, ancak bir web hizmeti daha fazla esneklik sağlar.
Adımlar
ASP.NET AJAX Denetim Araç Seti, bir metin kutusuna otomatik olarak iki düğme ekleyen genişleticiyi içerir NumericUpDown
: Biri değerini artırmak için, biri de onu azaltmak için. Ancak denetim bir web hizmeti çağrısını (veya sayfa yöntemi çağrısını) da destekler. Yukarı veya aşağı düğmesine her tıklandığında JavaScript kodu web sunucusuna bağlanır ve orada bir yöntem yürütür. Yöntem imzası aşağıdaki gibidir:
public int MethodName(int current, string tag) {}
current
bağımsız değişkeni metin kutusundaki geçerli değerdir; tag
özniteliği genişleticinin özelliği olarak ayarlanabilen NumericUpDown
(ancak gerekli olmayan) ek bağlam verileridir.
Bu örnek için, sayısal yukarı/aşağı denetimi yalnızca ikinin gücü olan değerlere izin verecektir: 1, 2, 4, 8, 16, 32, 64 vb. Bu nedenle, kullanıcı değeri artırmak istediğinde yürütülen yöntemin eski değerin iki katı olması gerekir; diğer yöntem değeri ikiye bölmelidir. İşte tam web hizmeti:
<%@ 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;
};
}
}
Son olarak, yeni bir ASP.NET sayfası oluşturun. Her zamanki gibi bir ScriptManager
denetime, denetime TextBox
ve denetime ihtiyacınız vardır NumericUpDownExtender
. İkincisi için web hizmeti bilgilerini sağlamanız gerekir:
ServiceDownMethod
aşağı web yönteminin veya sayfa yönteminin adıServiceDownPath
aşağı hizmet yöntemiyle web hizmetinin yolu; Sayfa yöntemi kullanıyorsanız atlaServiceUpMethod
yukarı web yönteminin veya sayfa yönteminin adıServiceUpPath
yukarı hizmet yöntemiyle web hizmetinin yolu; Sayfa yöntemi kullanıyorsanız atla
Sayfa için tam işaretleme aşağıdadır:
<%@ 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>
Sayfayı çalıştırırsanız, üstteki düğmeye tıkladığınızda metin kutusundaki değerin her zaman iki katına çıktığına ve alttaki düğmeye tıkladığınızda ikiye katlandığına dikkat edin.
Yalnızca 2'nin gücündeki sayılar görüntülenir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin