asp.net+Ajax 文本文件静态分页实现代码

服务端部分 ,文本文件分页的类。主要在流中处理。当然我看过网上的用</br> 关键字进行分页的

个人觉得不是所有时候都能满足要求,所一自己写了这个,还是费了点时间,主要在于本人太笨,基础很差。希望大家个出更好的建议

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

namespace Txt

{

public class TxtPager

{

public TxtPager()

{ }

public TxtPager(string _txtPath, int _Pagesize)

{

{

this.txtPath = _txtPath;

this.pageSize = _Pagesize;

}

}

string txtPath;//文件路径

int pageSize;//每页文本行数

// int ppt;//

int number;

// int totalPage;

#region

public int TotalPage

{

get {

if (TxtLineCount() % pageSize == 0)

return TxtLineCount() / pageSize;

else

return TxtLineCount()/pageSize + 1; }

}

public int Ppt

{

get { return TxtLineCount(); }

}

public int Number

{

get { return number; }

set { number = value; }

}

#endregion

private int TxtLineCount()

{

StreamReader sr = new StreamReader(this.txtPath);

string line;

int count = 0;

while ((line = sr.ReadLine()) != null)

{

//line += "fuck";

count++;

}

return count;

}

public string ReadTxtToHtml()

{

string line;//存放一行文字

int ptr = 0;//行计数

int ttp = 1;//分页后的最大页数

StreamReader sr = new StreamReader(txtPath);

string htmlStr = "";//用于存放Html代码

htmlStr += "#" + ttp + "</br>";

while ((line = sr.ReadLine()) != null)

{

if (ptr == pageSize)

{

ttp++;

htmlStr += "#" + ttp + "</br>";

ttp++;

htmlStr += "#" + ttp + "</br>";

ptr = 0;

}

htmlStr += line + "</br>";

ptr++;

}

htmlStr += "#" + (ttp + 1) ;

//return htmlStr;

if (number > ttp+1/2)

{

number = ttp;

}

//.................................

string startStr = "#" + (2 * number - 1);//1

string endStr = "#" + (2 * number);//2 1---2

int startNum = htmlStr.IndexOf(startStr);

int endNum = htmlStr.IndexOf(endStr);

int offset = startStr.Length;

return htmlStr.Substring(startNum + offset, endNum - (startNum + offset));

}

}

}

这里是这个类的使用方法:

这段代码用来解释分页类的使用有一点不直观,主要是写的时候我是针对多的文件分页的,还好我这里只需要6个而已;需要多个也可也满足要求。

呵呵还没有完善,注释部分懒得写,所以没写,哎是在是太懒了。注册这么长时间的博客园才写这么几篇烂东西。跟自己的初衷还是想去甚远的。

复制代码 代码如下:

public partial class TxtPager : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

int pageSize = 40;

string _path = rtPath(int.Parse(Request.QueryString["txtid"]));

string path = HttpContext.Current.Server.MapPath(_path);

Txt.TxtPager tp = new Txt.TxtPager(path, pageSize);

int _ttpage = tp.TotalPage;

if (Request.RequestType.ToString().ToLower() == "get")

{

Response.Write(_ttpage.ToString());

Response.End();

}

if (Request.RequestType.ToLower() == "post")

{

//string =

//前端判断 index 是否为数字

string index = Request.QueryString["index"];

tp.Number = int.Parse(index);

string context = tp.ReadTxtToHtml();

Response.Write(context);

Response.End();

}

}

private string rtPath(int i)

{

string[] pathCollection = { "Test.txt" ,"tdays.txt","problem.txt","jion.txt","serve.txt","project.txt","icexplain.txt"};

return "txt/" + pathCollection[i];

}

}

上面这也是为Ajax 的请求做准备的,写的还是很粗糙的,希望高手莫扔我鸡蛋

Ajax 代码部分

复制代码 代码如下:

<script type="text/javascript" language="javascript">

var xmlhttp;

var pxmlhttp;

var TotilPage;

var ContectBody;

function GetXmlHttpRequset()

{

var rtxmlHttp;

try

{ rtxmlHttp = new XmlHttpRequset();}

catch(e)

{

try

{

rtxmlHttp = new ActiveXObject("Mxxml2.XMLHTTP");

}

catch(e)

{

try{ rtxmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}

catch(e)

{ alert("您的的浏览器不支持Ajax"); }

}

}

return rtxmlHttp;

}

function GetPagerCount()

{

xmlhttp = GetXmlHttpRequset();

var url = "TxtPager.aspx?txtid=0";

try

{

xmlhttp.open("get",url,false);

}

catch(e)

{ return false; }

xmlhttp.onreadystatechange = CountCallBack;

xmlhttp.send(null);

return true;

}

function CountCallBack()

{

if(xmlhttp.readyState == 4)

{

var count = xmlhttp.responseText;

var i = 0;

for(i=0 ; i<count ; i++)

{

var ChildDiv = document.createElement("div");

document.getElementById("Count1").appendChild( ChildDiv);

ChildDiv.innerHTML = i+1;

ChildDiv.setAttribute("id",i);

ChildDiv.setAttribute("onclick","GetHtmlString("+(i+1)+")");

GetHtmlString(1);

}

}

}

function GetHtmlString(i)

{

pxmlhttp = GetXmlHttpRequset();

var Url = "TxtPager.aspx?txtid=0&index="+ i;

pxmlhttp.open("post",Url,false);

pxmlhttp.onreadystatechange = ContextPostBack ;

pxmlhttp.send(null);

}

function ContextPostBack()

{

if(pxmlhttp.readyState == 4)

{

var context = pxmlhttp.responseText;

document.getElementById("article").innerHTML = context;

}

}

</script>

代码还是很浅显易懂的,呵呵因为我也不会写高深的代码。重要的我们都要动手去实践。菜鸟们多多努力哦。做完我这个例子级会收获很多哦。

至少当我还是个初级菜鸟的时候要是有这个例子进步会很快。

下面就是显示的部分了。给大家一个完完整整的。做人要厚道要负责人

复制代码 代码如下:

<table width="90%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td align="center">冰激凌制作方法大全</td>

</tr>

<tr>

<td id="article" align="left" style="font-size:12px; height:805px">td>

</tr>

<tr>

<td id="Count1" style="height:auto; text-align:right"> </td>

</tr>

</table>

完成了!!希望会让来看我代码的人不会失望。

时间: 2024-10-16 10:12:19

asp.net+Ajax 文本文件静态分页实现代码的相关文章

asp.net+Ajax 文本文件静态分页实现代码_AJAX相关

服务端部分 ,文本文件分页的类.主要在流中处理.当然我看过网上的用</br> 关键字进行分页的 个人觉得不是所有时候都能满足要求,所一自己写了这个,还是费了点时间,主要在于本人太笨,基础很差.希望大家个出更好的建议 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Txt { public class TxtPager { public

asp.net ajax检查用户名是否存在代码

原文  asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web窗体,命名为 Default.aspx 创建 XMLHttpRequest 对象所有现代浏览器 (IE7+.Firefox.Chrome.Safari 以及 Opera) 都内建了 XMLHttpRequest 对象. 通过一行简单的 JavaScript 代码,我们就可以创建 XMLHttpReq

asp.net ajax 检测用户名是否可用代码

原文  asp.net ajax 检测用户名是否可用代码 .net ajax 检测用户名是否可用代码 <script type="text/网页特效" src="css教程/jquery-1.3.2.js"></script> <script type="text/javascript"> function judgeusername() { $.ajax({ type:"get", url

ASP.NET AJAX CodePlex Preview 3的代码解析

忙了半个月,现在终于闲下来了,有时间写博,感觉真爽!刚刚看到有人想一起研究ASP.NET AJAX CodePlex Preview 3的帖子,正好前段时间小研究了下.Preview3就出了两个JS(MicrosoftAjaxAdoNet.js和MicrosoftAjaxTemplates.js). 这里先介绍下MicrosoftAjaxAdoNet类库,对于它的介绍在MS提供的文档中都说明了.这里只是解析下代码,并一起讨论下.先放一张这个类库中的类关系图上来 下面看下它的基础类: AdoNet

基于 Jquery+Ajax+Json高效分页实现代码

   代码如下 复制代码 <%@ WebHandler Language="C#" Class="GetData" %> using System; using System.Web; using System.Data.SqlClient; using System.Data; using System.Collections.Generic; using System.Web.Script.Serialization; public class Ge

Jquery Ajax.ashx 高效分页实现代码_jquery

以前的我,用惯了 UpdatePanel UpdateProgress 等控件,甚至到了滥用的程度,只是一味的追求无刷新,一边弄这 loading 图片 提示,这样貌似更美观,但是 感觉 更损失了性能, 而且有时候还破坏了网站的完整性. 但是学了Jquery之后,了解了 Jquery.ajax ,Jquery.get 等方法,从而学会了使用 webservice 和.ashx 文件,来与服务器交互. 这次的Jquery分页 是与 .ashx文件配合的. 建立三个.ashx,分别为PreviewH

ASP.NET和MSSQL高性能分页实例代码_MsSql

首先是存储过程,只取出我需要的那段数据,如果页数超过数据总数,自动返回最后一页的纪录: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Clear -- Description: 高性能分页 -- http://www.cnblogs.com/roucheng/ -- =================================

PHP+AJAX无刷新分页实现代码详解(1/2)

 代码如下 复制代码 var http_request=false;    function send_request(url){//初始化,指定处理函数,发送请求的函数 http_request=false; //开始初始化XMLHttpRequest对象 if(window.XMLHttpRequest){//Mozilla浏览器     http_request=new XMLHttpRequest();     if(http_request.overrideMimeType){//设置

ASP实现长文章手动分页的代码

  <% set recordset1=server.createobject("adodb.recordset") exec="SELECT * FROM news  where id="&id recordset1.Open exec,conn,1,1 %>  <table width="85%" border="0" align="center" cellpadding=&q