一、 簡介
NumericUpDown也可以稱之為微調控制項(效果圖:),可以使用它進行一組有關聯順序的值的輸入控制項。早在delphi時代,就流行使用該控制項。而在web上,到今天才真正出現次控制項,可見其web實現之難,感謝ajax。
NumericUpDown同樣也是擴充控制項,它擴充的是TextBox。常規的使用有數位增/減和時間/日期/星期的的增/減。而且它的上下鍵的圖片還可以更改。
它的增/減方式有三種(我所知道的):
1.在列表中枚舉。
2.在屬性中設定最大、最小值和步長。
3.在WebService中映射增/減的方法。
二、 屬性說明
<ajaxToolkit:NumericUpDownExtender ID="NUD1" runat="server"
TargetControlID="TextBox1"
Width="100"
RefValues="January;February;March;April"
TargetButtonDownID="Button1"
TargetButtonUpID="Button2"
ServiceDownPath="WebService1.asmx"
ServiceDownMethod="PrevValue"
ServiceUpPath="WebService1.asmx"
ServiceUpMethod="NextValue"
Tag="1" />
TargetControlID – 被擴充的TextBox的ID
Width -控制項擴充的TextBox加上上下按鈕鍵的Width (最小值是 25).
RefValues – 如果你希望以枚舉的方式來增/減。那麼在這個值中設定枚舉值,用”;”分割。如 :"星期一;星期二;星期三;星期四;星期五;星期六;星期天"
Step – 步長,每次的增/減的長度.預設值是1.
TargetButtonDownID/TargetButtonUpID – 上下增/減按鈕的ID.
ServiceDownPath/ServiceUpPath –放置上下增/減按鈕的方法的WebService的實體路徑。
ServiceDownMethod/ServiceUpMethod - 上下增/減按鈕在WebService的方法:
在WebService的方法前需要放置聲明
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
Tag - 傳遞給ServiceDownMethod或ServiceUpMethod所指定的Web Method的參數,可用於傳遞給伺服器當前的上下文資訊。
Minimum – 最小值.
Maximum - 最大值.
三、 執行個體
1.在列表中枚舉
<asp:TextBox ID="TextBox2" runat="server">星期三</asp:TextBox>
<cc1:NumericUpDownExtender ID="NumericUpDownExtender1" runat="server" Width=100 TargetControlID="TextBox2"
RefValues="星期一;星期二;星期三;星期四;星期五;星期六;星期天" >
2. 在屬性中設定最大、最小值和步長
<asp:TextBox ID="TextBox2" runat="server">10</asp:TextBox>
<cc1:NumericUpDownExtender ID="NumericUpDownExtender1" runat="server" Maximum="1000"
Minimum="0" Step="50" TargetControlID="TextBox2" Width="100">
</cc1:NumericUpDownExtender>
3.在WebService中映射增/減的方法
我們可以為NumericUpDownExtende控制項添加兩個方法
NumericUpDown.asmx程式碼範例:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
/**//// <summary>
/// NumericUpDown 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class NumericUpDown : System.Web.Services.WebService ...{
[WebMethod]
public int NextValue(int current, string tag) ...{
return new Random().Next(Math.Min(1000, Math.Max(0, current)), 1001);
}
[WebMethod]
public int PrevValue(int current, string tag) ...{
return new Random().Next(0, Math.Min(1000, Math.Max(0, current)));
}
}
這樣就可以控制上下鍵的執行過程。
http://asp.net/AJAX/Control-Toolkit/Live/NumericUpDown/NumericUpDown.aspx