配置好AjaxPro,然后什么都不说了 直接贴代码。
前台:
<style type="text/css">
*{ margin:0px; padding:0px; list-style-type:none; font-family:"宋体"; font-size:14px;}
a{ text-decoration:none;}
a:hover{ text-decoration:underline;}
#dataBox{ float:left; height:200px; width:500px; clear:both;}
#dataBox li{ width:500px; height:30px; line-height:30px;text-overflow:ellipsis; white-space:nowrap;overflow:hidden; cursor:pointer; }
#dataBox li a{ color:#666;}
#pagerBar{ float:left; display:inline; width:500px; height:20px; overflow:hidden; clear:both; text-overflow:ellipsis; white-space:nowrap;}
#pagerBar a{ float:left; display:inline; height:17px; width:20px; border:1px solid #ccc; text-align:center; line-height:17px; cursor:pointer; margin:1px; color:blue;}
#pagerBar a.outlink{ background:#fff}
#pagerBar a.onlink{ background:red;}
#pagerBar span{ float:left; display:inline; height:17px; width:30px; border:1px solid #ccc; text-align:center; line-height:17px; cursor:pointer; margin:1px; color:Blue;}
</style>
<div id="dataBox"></div>
<div id="pagerBar"></div>
后台:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxPagerTest));//注册AjaxPro
}
[AjaxPro.AjaxMethod]
public IList<Post> GetAllPostByPage(int pageSize, int pageIndex)//分页获取数据
{
int pastCount = pageIndex * pageSize;
string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
SqlConnection conn = new SqlConnection(connstr);
SqlCommand comm = new SqlCommand("select top(" + pageSize + ")* from Post where PostID not in (select top(" + pastCount + ") PostID from Post where PostUserID=13) and PostUserID=13", conn);
SqlDataAdapter da = new SqlDataAdapter(comm.CommandText, conn);
try
{
DataTable dtData = new DataTable();
da.Fill(dtData);
IList<Post> lis = new List<Post>();
foreach (DataRow dr in dtData.Rows)
{
Post post = new Post();
post.PostTypeName = dr["PostTypeName"].ToString();
post.PostTitle = dr["PostTitle"].ToString();
post.PostUserName = dr["PostUserName"].ToString();
post.PostDate = Convert.ToDateTime(dr["PostDate"]);
post.Hits = Convert.ToInt32(dr["Hits"]);
lis.Add(post);
}
return lis;
}
catch (Exception ex)
{
throw ex;
}
}
[AjaxPro.AjaxMethod]
public int GetPostCount()//获取数据总数
{
string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
SqlConnection conn = new SqlConnection(connstr);
SqlCommand comm = new SqlCommand("select count(*) from Post where PostUserID=13", conn);
try
{
conn.Open();
int postCount = Convert.ToInt32(comm.ExecuteScalar());
conn.Close();
return postCount;
}
catch (Exception)
{
throw;
}
}
前台:
<script type="text/javascript">
var dataBox = document.getElementById('dataBox');//数据显示容器
var pagerBar = document.getElementById('pagerBar');//页码条
var pageSize = 6; //每页记录数
var totalSize = getPostCount();//记录总数
var pageLen = getPageLen();//页数
var onIndex = 0;//选择页的序号
//获得记录总数
function getPostCount() {
return AjaxPagerTest.GetPostCount().value;
}
//获得页数
function getPageLen() {
if (totalSize % pageSize == 0)
return totalSize / pageSize;
else
return Math.ceil(totalSize / pageSize);
}
//加载页码条
var pagerHtml = "<span id='prev'>上一页</span>";
for (var i = 1; i <= pageLen; i++) {
pagerHtml += "<a href='#'>" + i + "</a>"
}
pagerHtml += "<span id='next'>下一页</span>"
pagerBar.innerHTML = pagerHtml;
var pagerList = pagerBar.getElementsByTagName('a');//获得每一页
var pagerPrev = document.getElementById('prev');//上一页
var pagerNext = document.getElementById('next'); //下一页
pagerList[onIndex].className = 'onlink'; //初始选中第一页
getData(onIndex);//初始显示第一页数据
//点击上一页
pagerPrev.onclick = function() {
if (onIndex != 0) {
pagerList[onIndex].className = 'outlink';
onIndex--;
pagerList[onIndex].className = 'onlink';
getData(onIndex);
}
}
//点击下一页
pagerNext.onclick = function() {
if (onIndex != pageLen-1) {
pagerList[onIndex].className = 'outlink';
onIndex++;
pagerList[onIndex].className = 'onlink';
getData(onIndex);
}
}
//点击每一页
for (var i = 0; i < pageLen; i++) {
pagerList[i].value = i;
pagerList[i].onclick = function() {
pagerList[onIndex].className = 'outlink';
onIndex = this.value;
pagerList[onIndex].className = 'onlink';
getData(onIndex);
};
}
//根据页码显示数据
function getData(pageIndex) {
var dataObj = AjaxPagerTest.GetAllPostByPage(pageSize, pageIndex).value;
if ((totalSize % pageSize != 0) && (pageIndex == Math.floor(totalSize / pageSize)))
var thisPageSize = totalSize % pageSize;
else
var thisPageSize = pageSize;
var dataHtml = "<ul>";
for (var i = 0; i < thisPageSize; i++) {
dataHtml += "<li><a href='#'>" + dataObj[i].PostTypeName + "| " + dataObj[i].PostTitle + "| " + dataObj[i].PostDate;
dataHtml += "| " + dataObj[i].PostUserName + "| " + dataObj[i].Hits + "</a></li>";
}
dataHtml += "</ul>";
dataBox.innerHTML = dataHtml;
}
</script>
下面就是效果图了:
然后就没有然后了。。。
- 大小: 4.6 KB
- 大小: 7.5 KB
分享到:
相关推荐
AjaxPro是.NET框架下的一款Ajax库,它提供了一种简单的方式来实现无刷新分页。AjaxPro将.NET方法转换为Ajax调用,使得在服务器端编写的方法可以直接在客户端通过JavaScript调用。 1. **AjaxPro控件**: 使用AjaxPro...
AjaxPro可以与GridView结合,实现无刷新的分页。当用户点击页码按钮时,会触发Ajax请求,服务器仅返回当前页的数据,然后在客户端更新GridView,保持页面其他部分不变。 6. **Web.config文件**: 这是ASP.NET应用...
AjaxPro是一个强大的ASP.NET AJAX库,它允许开发者创建具有类似JavaScript库(如jQuery)的异步Web应用程序,但完全用C#或VB.NET编写,无需JavaScript编码。AjaxPro的核心功能是将服务器端的方法转换为可以在客户端...
AjaxPro.NET的主要目标是简化AJAX应用的开发,提供与经典ASP.NET相似的编程模型,但同时增加了无刷新更新的能力。本文将深入探讨如何使用AjaxPro.NET来实现TextBox控件的智能获取功能,即自动完成或下拉提示。 **1....
AjaxPro则是另一个用于ASP.NET的Ajax库,它允许开发者以非常简单的方式将服务器端的方法暴露给客户端调用,实现无刷新的页面交互。AjaxPro通过生成JavaScript代理,使得在客户端调用服务器端方法就像调用本地函数...
AjaxPro是ASP.NET中的一个强大的Ajax库,它扩展了ASP.NET的功能,允许开发者创建类似JavaScript的异步更新功能,而无需深入JavaScript代码的复杂性。 Ajax(Asynchronous JavaScript and XML)技术是一种在不刷新...
在本文中,我们将详细介绍如何在***平台上使用JavaScript实现分页功能,并通过异步加载方式提高页面性能。异步加载是Web开发中一种常见的技术,它可以改善用户体验,减少页面的加载时间,通过仅更新部分页面内容而...
《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果...
《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果...
AjaxPro.NET是一个用于.NET Framework的开源AJAX库,它允许开发者轻松地创建无刷新的Web应用程序。 实现步骤如下: 1. **安装AjaxPro.NET**:首先,需要将AjaxPro.NET库添加到你的项目中。可以通过NuGet包管理器...
"Captain管理系统"是一个基于.NET平台开发的高效能、易用性的管理软件,它融合了多种核心技术,如jQuery、AjaxPro、JSON以及C#,并利用Nhibernate作为持久层框架,为用户提供了一套完整的数据管理和交互解决方案。...
5. "JS" 文件夹可能包含JavaScript文件,用于实现客户端的交互逻辑,比如与AjaxPro库配合,实现异步请求和动态数据更新。 6. "Image" 文件夹可能包含用于控件的图标或者示例中的图像资源。 综上所述,...