最近一段时间在紧跟一个网站的项目,数据库中用户表的UserName要求是唯一的,所以当用户选定一个用户名进行注册时要首先检查该用户名是否已被占用,并给出提示。起初的实现是:用户填写完注册表单提交后,在后台进行验证。但看到很多网站的设计是当用户填写完用户名,TextBox失去焦点后就会立即给出提示,比如

(一). 说明
        用Tree显示菜单及物品列表(从服务端获取数据)比较方便, 当前显示Tree
主要有两种方式:
        1. 在Tree初始化时将数据全部一次性从服务端获取,
获取完数据后页面展开或收缩时就不再需要获取数据,这样,
获取完数据使用时效率比较高, 但当树节点很多时,
在每次初始化时会有较大的延迟.
        2. 初始化时只加载展开的节点, 当用户需要查看某个节点下的数据时,
再去取数据, 这样, 初始化时延迟会相对减少, 但每次单击节点时要获取数据,
页面每次都要刷新, 所以也会产生延迟.
        此事例用Ajax实现第二种方式,
每次只动态加载要展开的节点数据(闭合节点不展开时,则不获取其子节点的数据), 
另外加载节点时页面不会刷新.

1.说明AjaxPro.2.dll的简单使用。实现省市县级联下拉框异步刷新。

js调用后台C#函数检测用户名时需要获取用户输入的用户名,然后检查数据库中是否已含有该用户名:

(二). 运行示例图
金沙娱樂城 1金沙娱樂城 2

  1. 首先添加引用。在bin->添加引用->添加AjaxPro.2.dll即可。
  2. 修改web.config。在System.web和compilation节点之间添加。如下所示:
       

传递参数的方法,有的(

(三). AjaxPro.NET简介

金沙娱樂城 3金沙娱樂城 4代码

//后台

         首先对AjaxPro.NET作一下介绍, AjaxPro.NET是一个优秀的Ajax框架,
在实际应用中只要添加其DLL引用并进行简单的配置,
即可以非常方便的在客户端直接调用服务端方法, 来获取Tree节点.

<system.web>
   
    <httpHandlers>
      <add verb=”POST,GET”  path=”ajaxpro/*.ashx” type=”AjaxPro.AjaxHandlerFactory, AjaxPro.2″/>
    </httpHandlers>
    
    <compilation debug=”true” targetFramework=”4.0″/>

protectedstringCsharpVoid(stringstrCC)
{
strCC=”你好!”+strCC;
returnstrCC;
}

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

 

//前台

       1. 添加 AjaxPro.dll
文件的引用(示例代码中已经包含,直接COPY过来使用即可).
       2. 在Web.config文件中添加以下配置.

   

functionInit()
{
  varv=”中国”;
  vars='<%=CsharpVoid%>’;
  alert;
}

金沙娱樂城 5<httpHandlers>
金沙娱樂城 6            <add verb=”POST,GET” path=”ajaxpro/*.ashx” type=”AjaxPro.AjaxHandlerFactory, AjaxPro” />
金沙娱樂城 7</httpHandlers>
金沙娱樂城 8

  1. 在page_load先注册一下,如下所示。注意参数名字为该页面的类名称。
     

我进行了尝试,结果并不如人所愿。后来绝决定使用Ajax来实现。由于之前了解的甚少,所以整个过程也走了不少弯路,幸运的是最后还是给弄出来了。具体实现步骤如下:

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

 

1.bin目录下添加引用:AjaxPro.2.dll

金沙娱樂城 9AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

金沙娱樂城 10金沙娱樂城 11代码

 并在后台Codefile中并添加usingAjaxPro;

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

  public partial class CascadeDropdownlist : System.Web.UI.Page
   {
    protected void Page_Load(object sender, EventArgs e)
    {
        AjaxPro.Utility.RegisterTypeForAjax(typeof(CascadeDropdownlist));
。。。。。。

2.Web.config
中<system.webServer>里的<handlers>下添加,以下内容:
<add name=”AjaxPro” verb=”POST,GET” path=”ajaxpro/*.ashx”
type=”AjaxPro.AjaxHandlerFactory,AjaxPro.2″/>

金沙娱樂城 12   [AjaxMethod()]    // or [AjaxPro.AjaxMethod] 
金沙娱樂城 13  public ArrayList GetSearchItems( string strQuery )
金沙娱樂城 14金沙娱樂城 15  金沙娱樂城 16{
金沙娱樂城 17       //生成数据源
金沙娱樂城 18       ArrayList items = new ArrayList();
金沙娱樂城 19       items.Add(“King”);
金沙娱樂城 20       items.Add(“Rose”);
金沙娱樂城 21       return items ;
金沙娱樂城 22  } 
金沙娱樂城 23

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注