asp.net 生成静态分页

asp.net 生成静态分页
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Mysqlserver;
using System.IO;
using System.Text;
namespace NewsAdd
{
    
public partial class Admin_AdminPanel_NewsAdd : System.Web.UI.Page
    {
        
protected void Page_Load(object sender, EventArgs e)
        {
        }
        
protected void Button1_Click(object sender, EventArgs e)
        {
            
string strDate = DateTime.Now.ToString("yyMMdd"+ "\" + DateTime.Now.ToString("yyyymmddhhmmss");
            
string strFileName = strDate + ".shtml";
            
string strTitle=Request.Form["Title"].ToString().Trim();
            
string strContent=Request.Form["Content"].ToString().Trim();
            
string[] content = strContent.Split(new Char[] {'|'});
            
int upbound = content.Length;
            SqlServerDataBase db 
= new SqlServerDataBase();
            
bool success = db.Insert("insert into inNews(Title,Content,FilePath)values('" + strTitle + "','" + strContent + "','" + strFileName + "')"null);
            
string dir = Server.MapPath("http://www.cnblogs.com/"+"NewsFiles/"+DateTime.Now.ToString("yyMMdd"));
            
if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            
try
            {
            
for (int i = 0; i < content.Length; i++)
            {
            
//string[] newContent = new string[4];
            StringBuilder strhtml = new StringBuilder();
                
using (StreamReader sr = new StreamReader(Server.MapPath("http://www.cnblogs.com/" + "NewsFiles/"+ "\template.html",Encoding.GetEncoding("gb2312")))
                {
                    String oneline;
                    
while ((oneline = sr.ReadLine()) != null)
                    {
                        strhtml.Append(oneline);
                    }
                    sr.Close();
                }
            DataSet ds 
= db.Select("select top 1 NewsId from inNews order by NewsId desc"null);
            
string strTable = "<table><tr><td>$upUrl</td><td>$Number</td><td>$downUrl</td></tr></table>";
                
string FilePath="";
                strhtml 
= strhtml.Replace("$Title", strTitle);
                strhtml 
= strhtml.Replace("$NewsId", ds.Tables[0].Rows[0]["NewsId"].ToString());
                strhtml 
= strhtml.Replace("$Time", DateTime.Now.ToString("yyyy/MM/dd"));
                strhtml 
= strhtml.Replace("$Content", content[i]);
                
string strNumber = "";
                
for (int m = 1; m <=upbound; m++)
                {
                    
if (m == 1)
                        strNumber 
= strNumber + " ["+"<a href=" + "../" + strDate + ".shtml" + ">" + m + "</a>"+"";
                    
else
                    {
                        
int n = m - 1;
                        strNumber 
= strNumber + " [" +"<a href=" + "../" + strDate + "_" + n + ".shtml" + ">" +  m + "</a>"+"";
                    }
                }
                    
if (upbound == 0)
                    {
                        FilePath 
= Server.MapPath("http://www.cnblogs.com/"+ "NewsFiles" + "//" + strDate + ".shtml";
                        strhtml 
= strhtml.Replace("$Pager""");
                    }
                    
else
                    {
                        
if (i == 0)
                            FilePath 
= Server.MapPath("http://www.cnblogs.com/"+ "NewsFiles" + "//" + strDate + ".shtml";
                        
else
                            FilePath 
= Server.MapPath("http://www.cnblogs.com/"+ "NewsFiles" + "//" + strDate + "_" + i + ".shtml";
                        
                        
if (i == 0)
                            strTable 
= strTable.Replace("$upUrl"""); 
                        
if (i <= 1)//上一页分页
                            strTable = strTable.Replace("$upUrl""<a href=" + "../" + strDate + ".shtml" + ">上一页</a>");
                        
else
                        {
                            
int p = i - 1;
                            strTable 
= strTable.Replace("$upUrl""<a href=" + "../" + strDate + "_" + p + ".shtml" + ">上一页</a>");
                        }
                        
                        
if(upbound==1)
                        strTable 
= strTable.Replace("$Number""");
                        
else
                        strTable 
= strTable.Replace("$Number", strNumber);
                        
if(i==upbound-1)
                            strTable 
= strTable.Replace("$downUrl""");
                        
if (i != upbound - 1)
                        {
                            
int q = i + 1;
                            strTable 
= strTable.Replace("$downUrl""<a href=" + "../" + strDate + "_" + q + ".shtml" + ">下一页</a>");
                        }
                        
else
                        {
                            
int j = upbound - 1;
                            strTable 
= strTable.Replace("$downUrl""<a href=" + "../" + strDate + "_" + j + ".shtml" + ">下一页</a>");
                        }
                        strhtml 
= strhtml.Replace("$Pager", strTable);
                    }
                FileInfo finfo 
= new FileInfo(FilePath);
                
using (FileStream fs = finfo.OpenWrite())
                {
                    StreamWriter sw 
= new StreamWriter(fs, System.Text.Encoding.Default);
                    sw.WriteLine(strhtml);
                    sw.Flush();
                    sw.Close();
                }
            }
        }
        
catch (Exception err)
        {
            Response.Write(err.ToString());
        }
        }
}
}
 
====================================================================================
读取分页标记   
  
string[]   pageNum   =   System.Text.RegularExpressions.Regex.Split(str,"分页标记");   
  
for(int   i   =   0;i<pageNum.Length;i++)   
  {   
    
//生成文件   和内容     
    string   FileName   =   "m_"   +   i.ToString()   +   ".htm";   
  .   
  }
 
====================================================================================
using System;
using System.Collections.Generic;
using System.Text; 


namespace Pagination
{
    
/// <summary>
    
/// 完成分页导航的生成
    
/// </summary>
    public class PageNavigate
    {
        
private PageNavigate() { }
        
/// <summary>
        
/// 生成分页导航条
        
/// </summary>
        
/// <param name="totalRecord">总记录数</param>
        
/// <param name="pageSize">页面记录数</param>
        
/// <param name="DistLen">数字长度</param>
        
/// <param name="page">当前页数</param>
        
/// <param name="QueryParametet">URL参数</param>
        
/// <param name="scriptName">页名前缀</param>
        
/// <returns></returns>
         public static string GetNavigate(int totalRecord,int pageSize,int DistLen,int page,string QueryParameter,string scriptName,string extName)
         { 

             
int pageNum; //页面数量
             string HTML="";
             
if ((totalRecord % pageSize) != 0)
                 pageNum 
= (totalRecord / pageSize) + 1;
             
else
                 pageNum 
= totalRecord / pageSize; 

             
if (pageNum < 1)
                 
return HTML;
             
//统计信息
             HTML += "显示" + ((page - 1* pageSize + 1+ "";  
             
if (page >= pageNum)
                 HTML 
+= totalRecord + "";
             
else
                 HTML 
+= page * pageSize + "";
            
             HTML 
+= "共<B>" + totalRecord + "</B>条 " + pageSize + "条/页";
             
             
//首页,上一页
             if (page > 1)
             {
                 HTML 
+= "<a href=\"" + scriptName + "1" + extName + "?" + QueryParameter + "\"  > 首  页 </a>"

                 HTML 
+= "<a href=\"" + scriptName + (page - 1) + extName + "?" + QueryParameter + "\" > 上一页 </a>";
             } 

             
//数字序列
             int page_t;
             
if (page < DistLen * 2)
             {
                 
if (pageNum > DistLen * 2

                     page_t 
= DistLen * 2;
                 
else
                     page_t 
= pageNum; 

                 
for (int i = 1; i <= page_t; i++)
                 {
                     
if (i == page)
                         HTML 
+= "<B>&nbsp;" + page + "</B>";
                     
else
                         HTML 
+= "<a href=\""+ scriptName + i + extName+ "?" +QueryParameter+ "\">&nbsp;" + i + "</a>"

                 }
             }
             
else
             {
                 
if (pageNum > (page + DistLen))
                     page_t 
= page + DistLen;
                 
else
                     page_t 
= pageNum; 

                 
for (int i = (page - DistLen); i <= page_t; i++)
                 {
                     
if (i == page)
                         HTML 
+= "<B>&nbsp;" + page + "</B>";
                     
else
                         HTML 
+= "<a href=\"" + scriptName + i + extName + "?" + QueryParameter + "\" >&nbsp;" + i + "</a>"

                 } 

             }
             
//下一页,尾页
             if (page < pageNum)
             {
                 HTML 
+= "<a href=\"" + scriptName + (page + 1) + extName + "?" + QueryParameter + "\" > 下一页 </a>";
                 HTML 
+= "<a href=\"" + scriptName + pageNum + extName + "?" + QueryParameter + "\" > 尾页 </a>";
             } 

             
return HTML;
         }
        
/// <summary>
        
/// 带下拉框的分页
        
/// </summary>
        
/// <param name="pageCount">总页数</param>
        
/// <param name="page">当前页</param>
        
/// <param name="pageSize">页面大小</param>
        
/// <param name="QueryParameter">页面参数</param>
        
/// <param name="scriptName">页面前缀</param>
        
/// <returns></returns>
        public static string GetNavigate(int pageCount, int page, int pageSize, string QueryParameter, string scriptName,string extName)
        {
            
string HTML = "";
            
if (pageCount < 1return HTML;
            
//首页,上一页
            if (page > 1)
            {
                HTML 
+= "<a href=\"" + scriptName + "1" + extName + "?" + QueryParameter + "\"> 首页 </a>";
                HTML 
+= "<a herf=\"" + scriptName + (page - 1) + extName + "?" + QueryParameter + "\"> 上一页 </a>";
            }
            
else
            {
                HTML 
+= " 首页  上一页 ";
            } 

            
//下一页,尾页
            if (page < pageCount)
            {
                HTML 
+="<a href=\"" + scriptName + (page+1)+ extName +"?" + QueryParameter + "\"> 下一页 </a>";
                HTML 
+= "<a href=\"" + scriptName + (pageCount) + extName +"?"  + QueryParameter + "\"> 尾页 </a>";
            }
            
else
            { 

                HTML 
+= " 下一页  尾页 ";
            }
            HTML 
+= " <select name=\"page___\" id=\"page___\" onChange=\" GoToSelectedPage();\">" + Environment.NewLine; ;
            HTML 
+= " <option> 选择 </option>" +Environment.NewLine;
            
for (int i = 1; i <= pageCount; i++)
            {
                
if (i == page)
                    HTML 
+= "<option value=\"" + scriptName +  i + extName + "?" + QueryParameter+ "\" selected>" + i + "</option>" + Environment.NewLine;
                
else
                    HTML 
+= "<option value=\"" + scriptName + i + extName + "?" + QueryParameter + "\">" + i + "</option>" + Environment.NewLine;
            }
            HTML 
+= "</select>" + Environment.NewLine;
            HTML 
+= "<script language=\"JScript\">" + Environment.NewLine;
            HTML 
+= "<!--" + Environment.NewLine;
            HTML 
+= " function GoToSelectedPage(){ " + Environment.NewLine;
            HTML 
+= " var page___=document.getElementById(\"page___\");" + Environment.NewLine;
            HTML 
+= " var index=page___.selectedIndex;" + Environment.NewLine;
            HTML 
+= " if(index==0) return;" + Environment.NewLine;
            HTML 
+= " window.location=page___.value;" +Environment.NewLine;
            HTML 
+= " }" + Environment.NewLine;
            HTML 
+= " //-->" + Environment.NewLine;
            HTML 
+= " </script>" + Environment.NewLine;
            
return HTML; 

        }
        
/// <summary>
        
/// 计算页面数量
        
/// </summary>
        
/// <param name="totalRecord">总记录数</param>
        
/// <param name="pageSize">页面大小</param>
        
/// <returns>页面数量</returns>
        public static int GetPageCount(int totalRecord, int pageSize)
        {
            
if (totalRecord % pageSize == 0)
                
return totalRecord / pageSize;
            
else
                
return (totalRecord / pageSize) + 1

        }
        
/// <summary>
        
/// 返回合成的文件名
        
/// </summary>
        
/// <param name="scritpName">页面前缀</param>
        
/// <param name="page">当前页</param>
        
/// <param name="extName">扩展名</param>
        
/// <returns></returns>
        public static string GetShortFileName(string scritpName,int page,string extName)
        {
            
return scritpName + page + extName;
        } 

     } 

}

posted on 2008-10-05 01:28  truejob  阅读(1078)  评论(0编辑  收藏  举报

导航