Jsonp原理介绍:http://www.jb51.net/article/31167.htm
说明:这个是纯事件翻页,如果正常开发(小弟才疏学浅自己认为的),是需要靠参数传递来翻页不需要自己定义翻页事件,我这里是为了了解才这样做的,具体请看Test1/Default.aspx.exclude
显示页面
用户信息列表
用户信息列表
全部用户信息列表.
用户ID
用户名称
年龄
手机
地址
操作数据页面
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Reflection;
using System.Collections.Generic;
using System.Transactions;
public class Handler : IHttpHandler {
public List users = new List();
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/jsonp";
string cmd = context.Request["cmd"];
if (!string.IsNullOrEmpty(cmd))
{
MethodInfo Method = this.GetType().GetMethod(cmd,BindingFlags.NonPublic|BindingFlags.Instance);
if (Method!=null)
{
Method.Invoke(this, new object[] { context });
}
}
}
public bool IsReusable {
get {
return false;
}
}
void GetUserType(HttpContext context)
{
string callback = context.Request["callback"];
string json = callback + "([" +
"{\"id\":1,\"text\":\"普通用户\"}," +
"{\"id\":2,\"text\":\"高级用户\"}," +
"{\"id\":3,\"text\":\"铜牌用户\"}," +
"{\"id\":4,\"text\":\"银牌用户\"}," +
"{\"id\":5,\"text\":\"金牌用户\"}," +
"{\"id\":6,\"text\":\"钻石用户\"}," +
"])";
context.Response.Write(json);
context.Response.End();
}
void GetUserName(HttpContext context)
{
string callback = context.Request["callback"];
users = context.Cache["users"] as List;
if (users==null)
{
users = new List();
}
string json = callback + "({\"total\":" + users.Count + ",\"rows\":[";
int start = int.Parse(context.Request["start"]);
int end = int.Parse(context.Request["end"]);
if (end>users.Count)
{
end = users.Count;
}
for (int i = start; i < end; i++)
{
User user = users[i];
json += "{\"userId\":" + user.userId + ",\"userName\":\"" + user.userName + "\",\"age\":" + user.age + ",\"phone\":\"" + user.phone + "\",\"address\":\"" + user.address + "\"},";
}
json += "]})";
//string json = callback+"({\"total\":28,\"rows\":["+
// "{\"userId\":1,\"userName\":\"A1\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":2,\"userName\":\"A2\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":3,\"userName\":\"A3\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":4,\"userName\":\"A4\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":5,\"userName\":\"A5\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":6,\"userName\":\"A6\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":7,\"userName\":\"A7\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":8,\"userName\":\"A8\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":9,\"userName\":\"A9\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":10,\"userName\":\"A10\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":11,\"userName\":\"A11\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"},"+
// "{\"userId\":12,\"userName\":\"A12\",\"age\":18,\"phone\":\"15612345678\",\"address\":\"XXXXXXX\"}"+
// "]})";
context.Response.Write(json);
context.Response.End();
}
void UpdateUserName(HttpContext context)
{
string callback = context.Request["callback"];
users = context.Cache["users"] as List;
if (users == null)
{
users = new List();
}
string userId = context.Request["userId"];
string userName = context.Request["userName"];
string age = context.Request["age"];
string phone = context.Request["phone"];
string address = context.Request["address"];
string type = context.Request["type"];
//string json = callback + "({\"total\":" + users.Count + ",\"rows\":[";
foreach (User user in users)
{
if (user.userId == int.Parse(userId))
{
user.userName = userName;
user.age = int.Parse(age);
user.phone = phone;
user.address = address;
user.type = int.Parse(type);
}
}
context.Cache.Remove("users");
context.Cache.Insert("users",users);
//foreach (User user in users)
//{
// json += "{\"userId\":" + user.userId + ",\"userName\":\"" + user.userName + "\",\"age\":" + user.age + ",\"phone\":\"" + user.phone + "\",\"address\":\"" + user.address + "\"},";
//}
//json += "]})";
context.Response.Write(callback + "(1)");
context.Response.End();
}
void SaveUserName(HttpContext context)
{
string callback = context.Request["callback"];
users = context.Cache["users"] as List;
if (users == null)
{
users = new List();
}
string userId = context.Request["userId"];
string userName = context.Request["userName"];
string age = context.Request["age"];
string phone = context.Request["phone"];
string address = context.Request["address"];
string type = context.Request["type"];
//string json = callback + "({\"total\":" + users.Count + ",\"rows\":[";
using (TransactionScope transaction = new TransactionScope())
{
User _users = new User(users[users.Count - 1].userId + 1, userName, int.Parse(age), phone, address,int.Parse(type));
users.Add(_users);
context.Cache.Remove("users");
context.Cache.Insert("users", users);
transaction.Complete();
}
//foreach (User user in users)
//{
// json += "{\"userId\":" + user.userId + ",\"userName\":\"" + user.userName + "\",\"age\":" + user.age + ",\"phone\":\"" + user.phone + "\",\"address\":\"" + user.address + "\"},";
//}
//json += "]})";
context.Response.Write(callback + "(1)");
context.Response.End();
}
void DeleteUserName(HttpContext context)
{
string callback = context.Request["callback"];
users = context.Cache["users"] as List;
if (users == null)
{
users = new List();
}
string userId = context.Request["userId"];
//string json = callback + "({\"total\":" + users.Count + ",\"rows\":[";
User _user = null;
foreach (User user in users)
{
if (user.userId == int.Parse(userId))
{
_user = user;
}
}
users.Remove(_user);
context.Cache.Remove("users");
context.Cache.Insert("users", users);
//foreach (User user in users)
//{
// json += "{\"userId\":" + user.userId + ",\"userName\":\"" + user.userName + "\",\"age\":" + user.age + ",\"phone\":\"" + user.phone + "\",\"address\":\"" + user.address + "\"},";
//}
//json += "]})";
context.Response.Write(callback+"(1)");
context.Response.End();
}
void GetUser(HttpContext context)
{
string callback = context.Request["callback"];
users = context.Cache["users"] as List;
if (users == null)
{
users = new List();
}
string userId = context.Request["userId"];
string json = callback + "(";
User _user = null;
foreach (User user in users)
{
if (user.userId == int.Parse(userId))
{
_user = user;
}
}
json += "{\"userId\":" + _user.userId + ",\"userName\":\"" + _user.userName + "\",\"age\":" + _user.age + ",\"phone\":\"" + _user.phone + "\",\"address\":\"" + _user.address + "\",\"type\":\"" + _user.type + "\"}";
json += ")";
context.Response.Write(json);
context.Response.End();
}
}
初始化数据
<%@ Application Language="C#" %>
Ok,用事件翻页已经好了,下载Demo