ajax分页

lvqiuchen 2012-08-14 02:47:30
RT
...全文
171 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-08-14
  • 打赏
  • 举报
回复
搞清楚分页原理,怎么做都是一样的,
分页原理
传递参数pageNo(当前页的页号)到后台,后台取数据当前页的数据,怎么显示根据需要就可以了
使用别人的控件,要掌握它的使用方法,需要拿来就用,其实自己都是很简单的,做东西不要依赖那些别人写的东西,自己要搞清楚
lvqiuchen 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

例子2
http://topic.csdn.net/u/20120814/11/01f888d3-11ea-4502-b935-965e5a3ba83d.html
[/Quote]
我的界面是这样的.我们现在有个CRM需要form表单提交.他要单独执行一个action,我现在使用的是aspnetpage.ajax控件,也需要单独走个form,所以服务器控件全都失灵.请问还有更高的方法解决么
孟子E章 2012-08-14
  • 打赏
  • 举报
回复
例子2
http://topic.csdn.net/u/20120814/11/01f888d3-11ea-4502-b935-965e5a3ba83d.html
孟子E章 2012-08-14
  • 打赏
  • 举报
回复
简单 GridView AJAX 局部刷新分页例子

下面代码是一个简单的实现 Ajax 分页的例子。



全部代码如下:
ASPX 代码
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
int PageIndex = 1;
private String ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MengXianHui.mdb;";
public int TotalCount = 0;
public int PageItem = 5;
System.Data.DataView CreateDataSourceByXianhuiMeng()
{
Int32.TryParse(Request.QueryString["Page"], out PageIndex);
OleDbCommand cmd;
String sql;
OleDbConnection cn = new OleDbConnection(ConnectionString);
cn.Open();
// 由于是 Access 数据库,我们只进行简单的分页。对于性能要求较高的地方,请自行采取其他方法,比如存储过程等。
sql = "SELECT COUNT(*) FROM [Document]";
cmd = new OleDbCommand(sql, cn);

// 总的记录数
TotalCount = Convert.ToInt32(cmd.ExecuteScalar());
//当前页的序号
if (PageIndex < 1) PageIndex = 1;
int PageCount = (int)Math.Ceiling((double)(TotalCount) / PageItem);
if (PageIndex > PageCount) PageIndex = PageCount;
int startRecord = (PageIndex - 1) * PageItem;

sql = "SELECT DocumentId,DocumentGuid,Title,CreateDate FROM [Document] ORDER BY [DocumentId] DESC";

OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
DataSet ds = new DataSet();
da.Fill(ds, startRecord, PageItem, "Document");
cn.Close();
return ds.Tables[0].DefaultView;
}


protected void Page_Load(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Request.QueryString["Page"]))
{
//首次加载显示页面内容,并进行初始化参数。
CreateDataSourceByXianhuiMeng();
Page.ClientScript.RegisterStartupScript(Page.GetType(), "js", "Pager(1)", true);
}
else
{
Response.ClearContent();
GridView1.DataSource = CreateDataSourceByXianhuiMeng();
GridView1.DataBind();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write(sb.ToString());
Response.End();
}

}
/// 添加这个override void VerifyRenderingInServerForm(Control control),是为了避免出现
/// 类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。
/// 的异常
public override void VerifyRenderingInServerForm(Control control)
{ }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>简单 AJAX 局部刷新分页例子</title>
<script type="text/javascript">
function GetData(p) {
var h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
h.open("GET", '<%=Request.FilePath %>?Page=' + p + "&" + Date.parse(new Date()), true);
h.onreadystatechange = function() {
if (h.readyState == 4) {
if (h.status == 200) {
document.getElementById("_Containter").innerHTML = h.responseText;
}
}
}
h.send(null);
}

///
/// 具有分页功能的函数。
///
function Pager(CurrentPage) {
GetData(CurrentPage);
var TotalRows = <%=TotalCount %>;
var Step = 3;
var PageItem = <%=PageItem %>;

if (TotalRows < 1) {
TotalPage = 0;
}
else {
TotalPage = Math.ceil(TotalRows / PageItem)
}
var PagerContent = "共 " + TotalPage + " 页 每页 " + PageItem + " 条 ";
var leftStep = CurrentPage - Step;
var rightStep = CurrentPage + Step;
if (leftStep < 1) leftStep = 1;
if (rightStep > TotalPage) rightStep = TotalPage;
if (CurrentPage > 1) PagerContent += "<a href='#' onclick='Pager(1);return false;'>首页</a> <a href='' onclick='Pager(" + (CurrentPage - 1) + ");return false;'>上一页</a> "
for (var i = leftStep; i <= rightStep; i++) {
if (i == CurrentPage) {
PagerContent += " <strong style='color:red'>" + i + "</strong>"
}
else {
PagerContent += " <a href='#' onclick='Pager(" + i + ");return false;'>" + i + "</a> "
}
}

if (rightStep < TotalPage) PagerContent += "<a href='' onclick='Pager(" + (CurrentPage + 1) + ");return false;'>下一页</a> <a href='' onclick='Pager(" + TotalPage + ");return false;'>末页</a> "
document.getElementById("_Pager1").innerHTML= document.getElementById("_Pager2").innerHTML = PagerContent;
}
alert("页面首次加载弹出的标记。")
</script>

</head>
<body>
<form id="form1" runat="server">
<div id="_Pager1" style="padding: 10px; text-align: center"></div>
<div id="_Containter">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="80%">
<HeaderStyle BackColor="#EEEEEE" />
<Columns>
<asp:BoundField DataField="DocumentId" />
<asp:HyperLinkField HeaderText="文章标题" DataNavigateUrlFields="DocumentGuid" DataTextField="Title"
DataNavigateUrlFormatString="http://dotnet.aspx.cc/article/{0}/read.aspx" />
<asp:BoundField HeaderText="发布时间" DataField="CreateDate" />
</Columns>
</asp:GridView>
</div>
<div id="_Pager2" style="padding: 10px; text-align: center"></div>
</form>
</body>
</html>

52,798

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧