您的位置:首页 > 其它

学习篇:无刷新展示数据+分页+添加+修改+删除

2012-11-02 01:17 295 查看
首先说下用到的技术:EF+Jquery easyUI 没有用MVC3,先用的asp.net+.ashx 以后会做个MVC3的。

这里说的无刷新,就是通过jquery异步的方式,前后台来传数据。

1、首先,就是展示数据,这里我用了EF实体数据模型来生成EF对象,然后再对数据库的数据进行操作。

我这里用的是asp.net前台页面配合.ashx一般处理程序处理数据,来完成无刷新展示数据的效果。

展示数据,很容易的,用到jquery中的getJSON方法,将数据异步发送到一般处理程序处理,一般处理程序根据EF实体对象,获取数据库中的所有值。

将得到的数据,序列化成json格式的数据,返回到前台。

前台再拼接字符串,append()到指定的table表格中。展示数据,就大功告成了。

2、这里分页,用到了大牛写的一个分页的类,返回的是a标签,只要传入pageSize,currentPage,totalCount 就可以生产分页标签了。上面说到的取数据就不能一下全取出来,需要计算出这几个值,传入形成分页标签才成。

3、添加:这里用到了Jquery EasyUI插件,展示数据,弹出对话框都还比较的美观,而且用起来还算方便。 (dialog)

首先,想要添加用户,就需要一个表格来装用户信息,所以,我们就有了表格。

表格不能一开始就显示出来,需要我们点击“增加”按钮,才能够弹出来,所以,一开始就需要隐藏div;用到了$("#add_div").css("display", "none");来隐藏div

点击的时候显示出来就需要给按钮添加单击事件 $("#btnAddUser").click(function () {.......}。还要将隐藏的div展示出来$("#add_div").css("display", "block");

然后就是用到了easyui中的dialog()方法,展示出表格来。

接着就是填信息,取信息到后台,ef实体对象将其增加到数据库。

4、修改:稍微有点麻烦,但思想都是一样的。只是点击修改的时候,需要将当前要修改的内容先显示到表格中,这就需要传来id去到全部数据,所以写了一个GetModelById.ashx来取到这些数据。然后就是SaveChanges() 了 。

5、删除,链接传个id根据id来删除当前的数据,不过用的是异步,用的是remove()方法。关键找到要删除的tr标签。

具体代码如下:

PageNav.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;

namespace WebApplication1.Common
{
public class PageNav
{
public static string ShowPageNavigate(int pageSize, int currentPage, int totalCount)
{
string redirectTo = "";
pageSize = pageSize == 0 ? 3 : pageSize;
var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
var output = new StringBuilder();
if (totalPages > 1)
{
if (currentPage != 1)
{//处理首页连接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);
}
if (currentPage > 1)
{//处理上一页的连接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);
}
else
{
// output.Append("<span class='pageLink'>上一页</span>");
}

output.Append(" ");
int currint = 5;
for (int i = 0; i <= 10; i++)
{//一共最多显示10个页码,前面5个,后面5个
if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)
{
if (currint == i)
{//当前页处理
//output.Append(string.Format("[{0}]", currentPage));
output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);
}
else
{//一般页处理
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);
}
}
output.Append(" ");
}
if (currentPage < totalPages)
{//处理下一页的链接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);
}
else
{
//output.Append("<span class='pageLink'>下一页</span>");
}
output.Append(" ");
if (currentPage != totalPages)
{
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);
}
output.Append(" ");
}
output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行
return output.ToString();
}
}
}


OK了。。。。呵呵,我上面说的那些,可以不用看了,代码倒是可以看看的,我有注视的哦....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐