• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 ; 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=0index="+ 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>

    完成了!!希望会让来看我代码的人不会失望。
    您可能感兴趣的文章:
    • 简单好用的ASP.NET分页类(支持AJAX、自定义文字)
    • asp.net使用AJAX实现无刷新分页
    • asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码
    • 用AJAX实现的无刷新的分页实现代码(asp.net)
    • AJAX分页的代码(后台asp.net)
    • asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
    • AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
    • asp.net+ajax简单分页实例分析
    上一篇:Ajax使用杂谈 也许也是乱弹
    下一篇:给初学ajax的人 ajax函数代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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