类似淘宝网的那种商品浏览功能中,它的分页是怎么实现的,用GridView设置自动分页可以实现那种效果吗?
解决方案 »
- 好心人帮我看一看,下段代码那出问题了,谢谢asp.net的
- 关于FCK的问题
- 求解、求绑定、求方案!!
- 怎么没人来??急急....在线等啊!
- 紧急求助不太会描述,请大家帮帮!
- 请教: TreeView 中节点的NavigateURL 属性设为javascript:ShowContent(n) 后节点不能被选中的问题
- 【asp.net】如何刷新另一个frame里的页面
- asp.net向excel导入数据,如果文字带有回车等控制符,则其信息不会显示在一个单元格,怎么解决?
- 得到一个系统所有的文件,数据库备份,该如果让系统在机子上跑起来
- 一个新手的问题(100分)在线等待
- 刚载入页面时,js函数如何调用页面控件?
- 我已经在IIS设置为.net1.1 为什么报错提示还是.net2.0 的 超郁闷啊~~~
public partial class _Default : System.Web.UI.Page
{
string connectString = "";//定义自已的连接串
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
}
[AjaxPro.AjaxMethod]
public DataTable GetDataTable()
{
SqlDataAdapter ad = new SqlDataAdapter("select * from tableName", connectString);
DataSet ds = new DataSet();
ad.Fill(ds);
int num = ds.Tables[0].Rows.Count;
return ds.Tables[0];
}
}default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html>
<head runat="server">
<title>ASP.NET (C#) Ajax无刷新分页</title>
<script language="javascript">
var dtObj=new Object();
function stringToInteger(inputString)
{
if(inputString == null || inputString == "")
{
return 0;
}
else
{
try
{
return parseInt(inputString);
}
catch(e)
{
return 0;
}
}
}
function numberToString(inputNumber)
{
return inputNumber.toString();
}
function getUrlParam(param)
{
var url=window.location.search.substring(1); var paramArray=url.split("&"); for(var i=0;i<paramArray.length;i++)
{var pramArraySub=paramArray[i].split("=");if(pramArraySub[0]==param && pramArraySub[1] != "undefined")
return pramArraySub[1];
}
return "";
}
//
var pageSize=5;
//var pageNo=stringToInteger(getUrlParam("pageno"));
</script>
</head>
<body>
<form id="form1" runat="server">
<div align=center><span id="sp_ShowContent"></span></div>
</form>
</body>
</html>
<script language=javascript>
var pageNo =0;
var dtObj = new Object();//对象实例化
dtObj=_Default.GetDataTable().value;// 从后台得到数据
var totalPage=0;
var totalRecord = dtObj.Rows.length;
if((dtObj.Rows.length%pageSize)==0)
totalPage = dtObj.Rows.length/pageSize;
else
totalPage = Math.ceil(dtObj.Rows.length/pageSize);
function showContent(op)
{
if(op == "first")
{
pageNo = 0;
}
else if(op == "previous")
{
if(pageNo>0)
pageNo-=1;
else
pageNo=0;
}
else if(op == "next")
{
if(pageNo<totalPage-1)
pageNo+=1;
else
pageNo = totalPage-1;
}
else if(op == "last")
{
pageNo=totalPage-1;
}
else
{
pageNo=0;
}
var content = "";
var startRecord = pageNo*pageSize;
var endRecord = 0;
if(pageNo>=totalPage-1)
endRecord = totalRecord;
else
endRecord = (pageNo+1)*pageSize;
content = '<table width="75%" border="1" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#339900">';
content += '<tr>';
content += '<td width="45%">编号</td>';
content += '<td width="55%">用户名</td>';
content += '</tr>';
for(var i=startRecord;i<endRecord;i++)
{
content += '<tr>';
content += '<td width="45%">'+dtObj.Rows[i]["ID"]+'</td>';//ID,UserName is Column Name
content += '<td width="55%">'+dtObj.Rows[i]["UserName"]+'</td>';
content += '</tr>';
}
content += '<tr align="center">';
content += '<td colspan="2"><a href="#" _fcksavedurl=""#"" _fcksavedurl=""#"" _fcksavedurl=""#"" _fcksavedurl=""#"" _fcksavedurl=""#"" onClick="showContent(\'first\')">第一页</a> <a href="#" onClick="showContent(\'previous\')">上一页</a> <a href="#" onClick="showContent(\'next\')">下一页</a> <a href="#" onClick="showContent(\'last\')">最后页</a></td>';
content += '</tr>';
content += '</table>';
window.document.getElementById("sp_ShowContent").innerHTML=content;
}
showContent("first");
</script>
这段代码我贴N边了
建议lZ先在CSDN搜索一下
再发帖//ASP.NET2.0中datalist仿百度分页
//注意此方法在ASP.NET1.0或1.1中测试通不过using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Data.SqlClient;
using System.IO;
public partial class Sql : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["constrmy"]);
int ToatalCountRecord;//总记录数
int PageItem = 4;//每页显示的条数
int CurrentPage = 1;//当前页数
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
if (Request.QueryString["page"] != null)
{
if (!Int32.TryParse(Request.QueryString["page"].ToString(), out CurrentPage))
{
Response.Write("请输入分页参数!");
Response.End();
return;
}
}
this.BuidGrid();
}
}
private void BuidGrid()
{
string s2 = "select * from ts1";
SqlDataAdapter da = new SqlDataAdapter(s2, conn);
DataSet ds = new DataSet();
int startRecord = (CurrentPage - 1) * PageItem;
da.Fill(ds, startRecord, PageItem, "a");
this.DataList1.DataSource = ds.Tables["a"].DefaultView;
this.DataList1.DataBind();
SqlCommand comm = new SqlCommand("select count(*) from ts1", conn);
conn.Open();
ToatalCountRecord = Convert.ToInt32(comm.ExecuteScalar());
conn.Close();
BuildPages();
}
private void BuildPages()
{
int Step = 5;//偏移量
int LeftNum = 0;//做界限
int RightNum = 0;//右界限
string PageUrl = Request.FilePath;
int PageCount = (int)Math.Ceiling((double)(ToatalCountRecord) / PageItem);
if (CurrentPage - Step < 1)
{
LeftNum = 1;
}
else
{
LeftNum = CurrentPage - Step;
}
if (CurrentPage + Step > PageCount)
{
RightNum = PageCount;
}
else
{
RightNum = CurrentPage + Step;
}
string OutPut = "";
if (CurrentPage > 1)
{
OutPut += "<a href='" + PageUrl + "?page=" + (CurrentPage - 1) + "'>" + "上一页" + "</a>";
}
for (int i = LeftNum; i <= RightNum; i++)
{
if (i == CurrentPage)
{
OutPut += "<font color=red>" + " " +"["+i.ToString() +"]"+ "" + "</font>";
}
else
{
OutPut += "<a href='" + PageUrl + "?page=" + i.ToString() + "'>" + " " +"["+ i.ToString() +"]"+ " " + "</a>";
}
}
if (CurrentPage < PageCount)
{
OutPut += "<a href='" + PageUrl + "?page=" + (CurrentPage + 1) + "'>" + "下一页" + "</a>";
}
this.PageInfo.InnerHtml = OutPut;
}
}
//需要在前台添加一个 <div id="PageInfo" runat="server" >