zoukankan      html  css  js  c++  java
  • Ajax无刷新无加载服务器控件翻页实例

     
    一、 在web.Config中配置
    AjaxPro.Dll
    <httpHandlers>
                <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro" />
    </httpHandlers>
    二、在Global.asax
    protected void Application_Start(object sender, EventArgs e)
            {
                AjaxPro.Utility.HandlerPath = "ajaxpro";
            }
    三、在页面中注册Ajax方法
    AjaxPro.Utility.RegisterTypeForAjax(typeof(UserTestWeb.AjaxMe));

    四、页面文件代码如下:
    <script type="text/javascript">
       
         RecordNumCount=0; //记录条数
         IndexPage=1;       //当前请求页
         ListNum=10;        //每页显示记录数
    //遍历页面上所有 checkBox
       var j=0;    //单次选中,双次不选中
      
       function checkboxcheck()
       {
          var inputs = document.all.tags("INPUT");
          for (var i=0; i < inputs.length; i++)
          {
            if (inputs[i].type == "checkbox" )
            {
             if(j%2==0)
             {
                  if(inputs[i].checked!=true)
                  {
                   inputs[i].checked=true;
                  }
              }
              else
              {
                 if(inputs[i].checked!=false)
                  {
                   inputs[i].checked=false;
                  }
              }
            }
          }
          j++;
       }
      
       //删除选中checkbox的ID集合
        function CheckAll()
        {
          var ids="";
          var inputs = document.all.tags("INPUT");
          for (var i=0; i < inputs.length; i++)
          {
            if (inputs[i].type == "checkbox" )
            {
              if(inputs[i].checked==true)
              {
                   if(ids!=null&&parseInt(inputs[i].id)>0)
                        ids=ids+parseInt(inputs[i].id)+",";
               }
             }
           }
           if(ids!=null||ids!="")
           {
                var DeleteInfos=UserTestWeb.AjaxMe.DeleteUserIds(ids);
                if(DeleteInfos.value!=null)
                {
                     document.getElementById("Div1").innerHTML=DeleteInfos.value;
                     Loads(RecordNumCount,tempindexpage,ListNum);//重新加载数据
                     return;
                }
           }
        }
       
       

       
       
        //加载数据
        function Loads(RecordNumCount,IndexPage,ListNum)
        {
             var infos=UserTestWeb.AjaxMe.GetNavBarHtml("Loads",IndexPage,ListNum,RecordNumCount);
             document.getElementById("divbar").innerHTML=infos.value;
             tempindexpage=IndexPage; //全局变量存放当前页
             document.getElementById("Operationinfo").innerHTML="";
             var dt=UserTestWeb.AjaxMe.LoadUseData(RecordNumCount,IndexPage,ListNum);
             if(dt.value!=null)
             {
               var ds=dt.value;
                if(ds != null )
                {           
                    for(var i=0; i<ds.Rows.length; i++)
            {
                var id=ds.Rows[i].id;
            var username=ds.Rows[i].AreaID;
            var email=ds.Rows[i].Area;
            document.getElementById("Operationinfo").innerHTML+="<table><tr><td style= 23px; height: 21px><input id="+id+" type='checkbox'/></td><td style= 100px; height: 21px>"+username+"</td><td style= 100px; height: 21px>"+email+"</td></tr></table>";
             }
                }
           }
           return;
        }
       
        //统计记录条数
        function CountTableRecord()
        {
            var RecordNum=UserTestWeb.AjaxMe.TableRecordNum();
            if(RecordNum.value!=null)
              {
                 RecordNumCount=RecordNum.value;
                 Loads(RecordNumCount,IndexPage,ListNum);
              }
              else
              {
                document.getElementById("Operationinfo").innerHTML="<div color='Red'>无任何记录</div>";
              }  
        }

        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td style=" 23px; height: 21px">
                        <input id="0" type="checkbox"    onclick="checkboxcheck();" /></td>
                    <td style=" 100px; height: 21px">
            <input id="Button1" type="button" value="加载数据" onclick="CountTableRecord();" /></td>
                    <td style=" 100px; height: 21px"><input id="aaa" type="button" name="删除所有" onclick="CheckAll();" value="删除选中"/>&nbsp;
                    </td>
                </tr>
            </table>
            <div id="Operationinfo"></div>
            <div id="Div1"></div>
        </div>
            <div style="z-index: 101; left: 3px; 500px; position: absolute; top: 348px;
                height: 1px" id="divbar">
            </div>
        </form>
    </body>
    </html>


    Ajaxme.CS代码如下:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.Threading;

    using UserTest.BLL;
    using AjaxPro;

    namespace UserTestWeb
    {
        public class AjaxMe
        {
            #region 返回当前页加载的数据记录
            [AjaxMethod]
            public static DataTable LoadUseData(int CountAll,int IndexPage,int ListNum )
            {
                DataTable Dt;
                Dt = new DataTable();
                Dt = UserTest.BLL.usert.DtUsers(CountAll, IndexPage, ListNum);
                System.Threading.Thread.Sleep(100);
                return Dt;
            }
            #endregion

            #region 缓存

            //public static object CreateObject(string CacheKey)
            //{
            //    object objType = GetCache(CacheKey);//从缓存读取
            //    if (objType == null)
            //    {
            //        try
            //        {
            //            DataTable Dt = new DataTable();
            //            Dt = UserTest.BLL.usert.DtUsers();
            //            objType = Dt;
            //            SetCache(CacheKey, objType);// 写入缓存
            //        }
            //        catch (System.Exception ex)
            //        { throw (ex); }
            //    }
            //    return objType;
            //}
            ///// <summary>
            ///// 读取CacheKey的Cache值
            ///// </summary>
            ///// <param name="CacheKey"></param>
            //public static object GetCache(string CacheKey)
            //{
            //    System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            //    return objCache[CacheKey];
            //}

            ///// <summary>
            ///// 设置当前应用程序指定CacheKey的Cache值
            ///// </summary>
            ///// <param name="CacheKey"></param>
            ///// <param name="objObject"></param>
            //public static void SetCache(string CacheKey, object objObject)
            //{
            //    System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            //    objCache.Insert(CacheKey, objObject);
            //}
            #endregion

            #region 表记录总数
            [AjaxMethod]
            public static int TableRecordNum()
            {
                return UserTest.BLL.usert.CountUsers();
            }
            #endregion

            #region 根据数据返回翻页字符
            [AjaxMethod]
            public static string GetNavBarHtml(string s, int pageIndex, int listNum,int recordCountAll)
            {
                // 计算显示页
                int pageCount = Convert.ToInt32(recordCountAll/listNum);
                int x = pageIndex / listNum;
                if (pageIndex % listNum == 0) --x;
                int startPage = (x * listNum) + 1;
                int endPage = Math.Min(pageCount, startPage + 9);

                // 生成换页代码
                System.Text.StringBuilder sb = new StringBuilder();
                string url = "<A href=# onclick={0}({1},{2},{3})>{4}</A>";

                if (startPage > 1)
                {
                    sb.Append(String.Format(url, s, recordCountAll, 1, listNum, "首页"));
                    sb.Append("&nbsp");
                    sb.Append(String.Format(url, s, recordCountAll, startPage - 1, listNum, "前十页"));
                    sb.Append("&nbsp");
                }

                for (int i = startPage; i <= endPage; i++)
                {
                    if (i != pageIndex)
                        sb.Append(String.Format(url, s, recordCountAll, i + 1, listNum, i.ToString()));
                    else
                        sb.Append(String.Format(url, s, recordCountAll, i, listNum, i.ToString()));

                    sb.Append("&nbsp");
                }

                if (pageCount >= endPage)
                {
                    sb.Append(String.Format(url, s, recordCountAll, endPage + 1, listNum, "后十页"));
                    sb.Append("&nbsp");
                    sb.Append(String.Format(url, s, recordCountAll, pageCount, listNum, "末页"));
                }
                System.Threading.Thread.Sleep(100);
                return sb.ToString();
            }
            #endregion

            #region 删除用户选中数据
            [AjaxMethod]
            public static string DeleteUserIds(string ids)
            {
                string returnInfos ="";
                if(ids.Length>0&&!ids.ToString().Equals(null))
                {
                    if (false == UserTest.BLL.usert.DeleteUsers(ids))
                    {
                        returnInfos = "<font color=Red style=font-size:12px>删除失败!</font>";
                    }
                    else
                    {
                        returnInfos = "<font color=Red style=font-size:12px>操作成功!</font>";
                    }
                }
                else
                {
                    returnInfos = "<font color=Red style=font-size:12px>您没有选中任何数据!</font>";
                }
                System.Threading.Thread.Sleep(100);
                return returnInfos;
            }
            #endregion

            #region 检测用户
            [AjaxMethod]
            public static string chkUserName(string username)
            {
                string returnInfos = "";
                bool result = UserTest.BLL.usert.isExit(username);
                if (false == result)
                {
                    returnInfos = "<font color=Red style=font-size:12px>该用户名已经有人注册过了!</font>";
                }
                else
                {
                    returnInfos = "<font color=Red style=font-size:12px>该用户" + username + "可以注册</font>";
                }
                System.Threading.Thread.Sleep(100);
                return returnInfos;
            }

            #endregion
        }
    }
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/di305449473/p/1171501.html
Copyright © 2011-2022 走看看