asp.net生成静态页 分页显示

来源:互联网 发布:淘宝全球购入口 编辑:程序博客网 时间:2024/04/27 08:16
asp.net生成静态页 分页显示
2009-11-15 14:18

protected void Page_Load(object sender, EventArgs e)
{
        #region 测试用datatable 数据集合,并插入测试数据
        DataTable dt = new DataTable();
        dt.Columns.Add("link", typeof(System.String));
        dt.Columns.Add("店名", typeof(System.String));
        DataRow dr = dt.NewRow();
        for (int r = 0; r <= 45; r++)
        {
            dr = dt.NewRow();
            dr[0] = "#";
            dr[1] = "店" + r;
            dt.Rows.Add(dr);
        }
        #endregion

        int pageNum = 10;//设置每页显示几条数据
        int maxnum = dt.Rows.Count;//获取集合总数
        Response.Write("总数:" + maxnum);
        int pages = 0; //设置总页数
        int yu = maxnum % pageNum;   //取余主要是要得到要生成多少个页面
        Response.Write("取余:" + maxnum % pageNum);

        if (yu == 0)
        {
            pages = maxnum / pageNum;
        }
        else
        {
            pages = maxnum / pageNum + 1;
        }
        Response.Write("pages:" + pages);
        string[] newList = new string[pages];//设置列表数组

 

        for (int i = 0; i < pages; i++) //给列表数组赋值
        {
            for (int o = i * pageNum; o < i * pageNum + pageNum; o++) ///
            {
                // Response.Write(i+"<br>");
                if (o > maxnum - 1) break;
                newList[i] = newList[i] + "<li>" + dt.Rows[o][0].ToString() + "&nbsp;&nbsp;" + dt.Rows[o][1].ToString() + "</li>";
            }
        }

        System.Text.Encoding code = System.Text.Encoding.GetEncoding("gb2312");

        // 读取模板文件
        string temp = HttpContext.Current.Server.MapPath("page/pagemodel.html");
        string path = HttpContext.Current.Server.MapPath("page/"); //获取当前路径,路径请根据自身情况设定
        StreamReader sr = null;
        // StreamWriter sw = null;
        string str = "";
        try
        {
            sr = new StreamReader(temp, code);
            str = sr.ReadToEnd(); // 读取文件
        }
        catch (Exception exp)
        {
            HttpContext.Current.Response.Write(exp.Message);
            HttpContext.Current.Response.End();
            sr.Close();
        }
        string[] ctr = new string[pages];//设置页码数组;
        for (int i = 0; i < pages; i++)
        {
            if (i == 0) //显示首页时
            {
                ctr[i] = "<a href='New_list_0.html' target='_self'>首页</a> 上一页 <a href='New_list_" + Convert.ToString(i + 1) + ".html' target='_self'>下一页</a> <a href='New_list_" + Convert.ToString((pages - 1)) + ".html' target='_self'>尾页</a>";
            }
            else if (i == pages - 1)
            { //显示尾页时
                ctr[i] = "<a href='New_list_0.html' target='_self'>首页</a> <a href='New_list_" + Convert.ToString(i - 1) + ".html' target='_self'>上一页</a> 下一页 <a href='New_list_" + Convert.ToString((pages - 1)) + ".html' target='_self'>尾页</a>";

            }
            else
            {
                ctr[i] = "<a href='New_list_0.html'target='_self'>首页</a> <a href='New_list_" + Convert.ToString(i - 1) + ".html' target='_self'>上一页</a> <a href='New_list_" + Convert.ToString(i + 1) + ".html' target='_self'>下一页</a> <a href='New_list_" + Convert.ToString((pages - 1)) + ".html' target='_self'>尾页</a>";
            }
        }
        for (int i = 0; i < pages; i++) //循环生成静态页面
        {
            string listStr = str;
            listStr = listStr.Replace("$NewList$", newList[i].ToString());
            listStr = listStr.Replace("$pages$", ctr[i].ToString());
            try
            {
                StreamWriter sw = new StreamWriter(path + "/New_list_" + i.ToString() + ".html", false, code);
                sw.Write(listStr);
                sw.Flush();
                sw.Close();
                sw.Dispose();
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write(ex.Message);
                HttpContext.Current.Response.End();
            }

        }
        Response.Write("<script>alert('页面生成完毕!')</script>");

    }

pagemodel.html模板文件:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>showtitle</title>
</head>
<body>
<div style="font-size:12px">

$NewList$
<br />
$pages$
</div>
</body>
</html>

原创粉丝点击