在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天给大家分享+ 文本文件静态分页实现代码,希望可以对大家能有小小的帮助。
服务端部分 ,文本文件分页的类。主要在流中处理。当然我看过网上的用/br 关键字进行分页的
个人觉得不是所有时候都能满足要求,所一自己写了这个,还是费了点时间,主要在于本人太笨,基础很差。希望大家个出更好的建议
代码如下:
using System;
using ;
using ;
using System.IO;
namespace Txt
{
public class TxtPager
{
public TxtPager()
{ }
public TxtPager(string _txtPath, int _Pagesize)
{
{
= _txtPath;
= _Pagesize;
}
}
string txtPath;//文件路径
int pageSize;//每页文本行数
// intppt;//
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();
string line;
int count = 0;
while ((line = ()) != 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 = ()) != 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 = ();
int endNum = ();
int offset = ;
return (startNum + offset, endNum - (startNum + offset));
}
}
}
这里是这个类的使用方法:
这段代码用来解释分页类的使用有一点不直观,主要是写的时候我是针对多的文件分页的,还好我这里只需要6个而已;需要多个也可也满足要求。
呵呵还没有完善,注释部分懒得写,所以没写,哎是在是太懒了。注册这么长时间的博客园才写这么几篇烂东西。跟自己的初衷还是想去甚远的。
代码如下:
public partial class TxtPager :
{
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 ; icount ; 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%" cellspacing="0" cellpadding="0"
tr
td冰激凌制作方法大全/td
/tr
tr
td align="left"td
/tr
tr
td /td
/tr
/table
完成了!!希望会让来看我代码的人不会失望。