|
一、 在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=width: 23px; height: 21px><input id="+id+" type='checkbox'/></td><td style=width: 100px; height: 21px>"+username+"</td><td style=width: 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="width: 23px; height: 21px">
<input id="0" type="checkbox" onclick="checkboxcheck();" /></td>
<td style="width: 100px; height: 21px">
<input id="Button1" type="button" value="加载数据" onclick="CountTableRecord();" /></td>
<td style="width: 100px; height: 21px"><input id="aaa" type="button" name="删除所有" onclick="CheckAll();" value="删除选中"/>
</td>
</tr>
</table>
<div id="Operationinfo"></div>
<div id="Div1"></div>
</div>
<div style="z-index: 101; left: 3px; width: 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(" ");
sb.Append(String.Format(url, s, recordCountAll, startPage - 1, listNum, "前十页"));
sb.Append(" ");
}
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(" ");
}
if (pageCount >= endPage)
{
sb.Append(String.Format(url, s, recordCountAll, endPage + 1, listNum, "后十页"));
sb.Append(" ");
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
}
}
|