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

80酷酷网    80kuku.com

  .net框架|ajax|asp.net|示例|数据|下载

学习  [征服Ajax——Web 2.0快速入门与项目实践(.net)]  一书并将其示例在Asp.net 2.0中做了一遍.

(一). 运行效果如下:

(二). 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 }(五). 示例代码下载                 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: