AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)

王朝asp·作者佚名  2006-12-20
窄屏简体版  字體: |||超大  

学习 [征服Ajax——Web 2.0快速入门与项目实践(.net)]

(一). 运行效果如下:

(二). AjaxPro.NET简介

AjaxPro.NET是一个优秀的Ajax框架, 在实际应用中只要添加其DLL引用并进行简单的配置,

即可以非常方便的在客户端直接调用服务端方法, 实现验证目的.

(三).使用AjaxPro.NET预配置

1. 添加 AjaxPro.dll 文件的引用(示例代码中已经包含,直接COPY过来使用即可).

2. 在Web.config文件中添加以下配置,

1 <httpHandlers>

2 <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro" />

3 </httpHandlers>

3. 在要使用AjaxPro.NET框架的页面 *.aspx.cs 的 Page_Load事件中加如下代码:

AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

4. 经过以上三步骤后, 只要在后台服务端的方法前面增加属性[AjaxMethod]后:

1 [AjaxMethod()] // or [AjaxPro.AjaxMethod]

2 public ArrayList GetSearchItems( string strQuery )

3 {

4 //生成数据源

5 ArrayList items = new ArrayList();

6 items.Add("King");

7 items.Add("Rose");

8 return items ;

9 }

10

就可以在客户端直接使用服务端方法, 非常方便, 客户端调用后台代码如下:

var returnValue = 后台代码类名.GetSearchItems(参数);

(四). 详细代码如下

1. 页面 AjaxPro.NETDataValidate.aspx 代码如下:

1 <head runat="server">

2 <title>AjaxPro.NET 数据验证</title>

3 <script language="jscript">

4 function IsUsernameExist_callback(result)

5 {

6 var msg = document.getElementById('lblMessage');

7 var value = result.value;

8 if( value == '0' )

9 {

10 msg.innerHTML = '用户名合法!';

11 msg.style.color='green';

12 }

13 else if( value == '1' )

14 {

15 msg.innerHTML = '用户名长度必须在 3 到 15 之间, 且不包含字母/数字/下划线以外的字符!';

16 msg.style.color = 'red';

17 }

18 else

19 {

20 msg.innerHTML = '用户名不存在!';

21 msg.style.color = 'red';

22 }

23 }

24

25 function VerifyUserName(name)

26 {

27 _Default.GetReturnCode(name, IsUsernameExist_callback);

28 }

29 </script>

30 </head>

31 <body>

32 <form id="form1" runat="server">

33 <div>

34 <asp:Panel ID="Panel1" runat="server" BackColor="#C0C0FF" Font-Bold="True" Font-Overline="False"

35 Font-Size="XX-Large" Height="37px" Width="459px">

36 AjaxPro.NET 数据验证</asp:Panel>

37 <

br />

38 <hr align="left" style="width: 463px" />

39 <

br />

40 输入用户名:&nbsp;

41 <asp:TextBox ID="tbUsername" runat="server"></asp:TextBox><

br />

42 <

br />

43 <asp:Label ID="lblMessage" runat="server" Width="246px"></asp:Label></div>

44 </form>

45 </body>

2. 页面 AjaxPro.NETDataValidate.aspx.cs 后台代码如下:

1 public partial class _Default : System.Web.UI.Page

2 {

3 protected void Page_Load(object sender, EventArgs e)

4 {

5 AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

6 tbUsername.Attributes.Add("OnKeyUp", "VerifyUserName(this.value)");

7 }

8

9 [AjaxPro.AjaxMethod]

10 public string GetReturnCode(string strName)

11 {

12 if (!IsValidUsername(strName))

13 {

14 return "1";

15 }

16 else if (!IsUsernameExist(strName))

17 {

18 return "2";

19 }

20 else

21 {

22 return "0";

23 }

24 }

25

26 private bool IsUsernameExist(string strUsername)

27 {

28 bool bRet = false;

29

30 switch (strUsername.ToUpper())

31 {

32 case "KING":

33 case "ROSE":

34 bRet = true;

35

break;

36 }

37

38 return bRet;

39 }

40

41 private bool IsValidUsername(string strUsername)

42 {

43 return (Regex.IsMatch(strUsername, @"^(\w{3,15})$"));

44 }

45 }

(五). 示例代码下载

http://www.cnblogs.com/Files/ChengKing/AjaxPro.NET_DataValidate.rar

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航