ASP.NET静态页面生成代码及分页

ASP.NET静态页面生成代码 

1、静态模板页面 template.html,主要是定义了一些特殊字符,用来被替换。

1.            < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">   

2.            < html>   

3.            < head>   

4.            < meta http-equiv="Content-Type" content="text/html; charset=gb2312">   

5.            < title>Title < /title>   

6.            < /head>   

7.            < body>   

8.            < div style="width: 417px; height: 54px" align="center">   

9.            < br />   

10.        Title < /div>   

11.        < div style="width: 417px; height: 8px">   

12.        浏览 < font color="red"> < script src="http://localhost/.Net/NewsFiles/ClickCount.aspx?NewsId=NewsId"> < /script> < /font> Time < /div>   

13.        < div style="width: 417px; height: 100px">   

14.        Content < /div>   

15.        < div style="width: 416px; height: 9px">   

16.        Pager < /div>   

17.        < div style="width: 416px; height: 8px">   

18.        < form id="form1" action="../AddComment.aspx" style="margin:0px">   

19.        < input id="Text1" type="text" /> < Img id="Image1" src="http://www.dwww.cn/UserInfo/CheckCode.aspx"/> < br />   

20.        < textarea id="CommentContent" cols="20" rows="2"> < /textarea>   

21.        < br />   

22.        < input id="NewsId" type="hidden" value="NewsId"/>   

23.        < input id="Button1" type="submit" value="button" />   

24.        < a href="http://www.dwww.cn/News/Display.aspx?NewsId=NewsId">查看更多评论 < /a> < /form>   

25.        < /div>   

26.        < /body>   

27.        < /html>  

ASP.NET静态页面生成:前台

2、前台页面 NewsAdd.aspx,就是一个表单,用来填写新闻的标题和内容。

28.        < %@ Page Language="C#" AutoEventWireup="false" validateRequest="false" CodeFile="NewsAdd.aspx.cs" Inherits="NewsAdd.Admin_AdminPanel_NewsAdd" %>   

29.        < %@ Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>   

30.        < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   

31.         

32.        < html xmlns="http://www.w3.org/1999/xhtml" >   

33.        < head runat="server">   

34.        < title>添加新闻 < /title>   

35.        < /head>   

36.        < body>   

37.        < form id="form1" runat="server">   

38.        < div>   

39.        < asp:Label ID="Label2" runat="server" Text="标题"> < /asp:Label>   

40.        < asp:TextBox ID="Title" runat="server" Width="325px"> < /asp:TextBox> < br />   

41.        < asp:Label ID="Label1" runat="server" Text="内容"> < /asp:Label>   

42.        < FCKeditorV2:FCKeditor id="Content" basePath="~/FCKeditor/" runat="server" Height="400px" Width="70%"> < /FCKeditorV2:FCKeditor>   

43.        < asp:Button ID="Button1" runat="server" onClick="Button1_Click" Text="Button" />   

44.        < asp:Label ID="Message" runat="server" > < /asp:Label> < /div>   

45.        < /form>   

46.        < /body>   

47.        < /html>  

 
 
 
1.            using System;   
2.            using System.Data;   
3.            using System.Configuration;   
4.            using System.Collections;   
5.            using System.Web;   
6.            using System.Web.Security;   
7.            using System.Web.UI;   
8.            using System.Web.UI.WebControls;   
9.            using System.Web.UI.WebControls.WebParts;   
10.        using System.Web.UI.HtmlControls;   
11.        using Mysqlserver;   
12.        using System.IO;   
13.        using System.Text;   
14.        namespace NewsAdd   
15.        {   
16.        public partial class Admin_AdminPanel_NewsAdd : System.Web.UI.Page   
17.        {   
18.        protected void Page_Load(object sender, EventArgs e)   
19.        {   
20.         
21.        }   
22.        protected void Button1_Click(object sender, EventArgs e)   
23.        {   
24.        string strDate = DateTime.Now.ToString("yyMMdd") + "/" + DateTime.Now.ToString("yyyymmddhhmmss");   
25.        string strFileName = strDate + ".shtml";//存储到数据库中   
26.        string strTitle=Request.Form["Title"].ToString().Trim();//接收传过来的标题   
27.        string strContent=Request.Form["Content"].ToString().Trim();//接收传过来的内容   
28.        string[] content = strContent.Split(new Char[] {'|'});//对内容进行拆分,并保存到数组   
29.        int upbound = content.Length;//数组的上限   
30.        SqlServerDataBase db = new SqlServerDataBase();   
31.        bool success = db.Insert("insert into inNews(Title,Content,FilePath)values('" + strTitle + "','" + strContent + "','" + strFileName + "')", null);   
32.        //if (success)   
33.        // Message.Text = "添加成功!";   
34.        /**创建当前日期的文件夹开始   
35.        string dir = Server.MapPath("../../"+"NewsFiles/"+DateTime.Now.ToString("yyMMdd"));//用来生成文件夹   
36.        if (!Directory.Exists(dir))   
37.        {   
38.        Directory.CreateDirectory(dir);   
39.        }   
40.        /**创建当前日期的文件夹结束   
41.        try   
42.        {   
43.        for (int i = 0; i <  content.Length; i++)   
44.        {   
45.        //string[] newnewContent = new string[4];//定义和html标记数目一致的数组   
46.        StringBuilder strhtml = new StringBuilder();   
47.         
48.        //创建StreamReader对象   
49.        using (StreamReader sr = new StreamReader(Server.MapPath("../../" + "NewsFiles/") + "/template.html",Encoding.GetEncoding("gb2312")))   
50.        {   
51.        String oneline;   
52.        //读取指定的HTML文件模板   
53.        while ((oneline = sr.ReadLine()) != null)   
54.        {   
55.        strhtml.Append(oneline);   
56.        }   
57.        sr.Close();   
58.        }   
59.         
60.        //为标记数组赋值   
61.        //SqlServerDataBase db = new SqlServerDataBase();   
62.        DataSet ds = db.Select("select top 1 NewsId from inNews order by NewsId desc", null);//获取id   
63.        string strTable = " < table> < tr> < td>upUrl < /td> < td>Number < /td> < td>downUrl < /td> < /tr> < /table>";//上下页表格,注意此处的upUrl(上一页),Number(页码分页),downUrl(下一页)   
64.        //这三个是用来替换的。   
65.         
66.        string FilePath="";   
67.        strhtmlstrhtml = strhtml.Replace("Title", strTitle);   
68.        strhtmlstrhtml = strhtml.Replace("NewsId", ds.Tables[0].Rows[0]["NewsId"].ToString());   
69.        strhtmlstrhtml = strhtml.Replace("Time", DateTime.Now.ToString("yyyy/MM/dd"));   
70.        strhtmlstrhtml = strhtml.Replace("Content", content[i]);   
71.        string strNumber = "";//数字分页123……   
72.        for (int m = 1; m < =upbound; m++)   
73.        {   
74.        if (m == 1)//如果是第一页就显示成这个样子:20070524.shtml而不是20070524_1.shtml   
75.        strNumberstrNumber = strNumber + " ["+" < a href=" + "../" + strDate + ".shtml" + ">" + m + " < /a>"+"] ";   
76.        else   
77.        {   
78.        int n = m - 1;//第三页的连接应该是20070524_2.shtml,以此类推   
79.        strNumberstrNumber = strNumber + " [" +" < a href=" + "../" + strDate + "_" + n + ".shtml" + ">" + m + " < /a>"+"] ";   
80.        }   
81.        }   
82.        if (upbound == 0)//如果没有分页,就直接按日期时间保存   
83.        {   
84.        FilePath = Server.MapPath("../../") + "NewsFiles" + "//" + strDate + ".shtml";   
85.        strhtmlstrhtml = strhtml.Replace("Pager", "");   
86.        }   
87.        else//否则按20070524.shtml20070524_1.shtml 这种效果保存   
88.        {   
89.        if (i == 0)   
90.        FilePath = Server.MapPath("../../") + "NewsFiles" + "//" + strDate + ".shtml";   
91.        else   
92.        FilePath = Server.MapPath("../../") + "NewsFiles" + "//" + strDate + "_" + i + ".shtml";   
93.         
94.        if (i == 0)//第一页不显示上一页   
95.        strTablestrTable = strTable.Replace("upUrl", "");   
96.         
97.        if (i < = 1)//上一页分页   
98.        strTablestrTable = strTable.Replace("upUrl", " < a href=" + "../" + strDate + ".shtml" + ">上一页 < /a>");   
99.        else   
100.     {   
101.     int p = i - 1;   
102.     strTablestrTable = strTable.Replace("upUrl", " < a href=" + "../" + strDate + "_" + p + ".shtml" + ">上一页 < /a>");   
103.     }   
104.      
105.     if(upbound==1)//如果只有一页,则不显示页码   
106.     //strNumber="";   
107.     strTablestrTable = strTable.Replace("Number", "");   
108.     else   
109.     strTablestrTable = strTable.Replace("Number", strNumber);//页码替换   
110.     /**/   
111.     if(i==upbound-1)//最后一页不显示下一页   
112.     strTablestrTable = strTable.Replace("downUrl", "");   
113.      
114.     if (i != upbound - 1)//下一页分页   
115.     {   
116.     int q = i + 1;   
117.     strTablestrTable = strTable.Replace("downUrl", " < a href=" + "../" + strDate + "_" + q + ".shtml" + ">下一页 < /a>");   
118.     }   
119.     else   
120.     {   
121.     int j = upbound - 1;   
122.     strTablestrTable = strTable.Replace("downUrl", " < a href=" + "../" + strDate + "_" + j + ".shtml" + ">下一页 < /a>");   
123.     }   
124.      
125.     strhtmlstrhtml = strhtml.Replace("Pager", strTable);   
126.     }   
127.     //创建文件信息对象--------------------------------------------   
128.     FileInfo finfo = new FileInfo(FilePath);   
129.     //以打开或者写入的形式创建文件流   
130.     using (FileStream fs = finfo.OpenWrite())   
131.     {   
132.     //根据上面创建的文件流创建写数据流   
133.     StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);   
134.     //把新的内容写到创建的HTML页面中   
135.     sw.WriteLine(strhtml);   
136.     sw.Flush();   
137.     sw.Close();   
138.     }   
139.     }   
140.     }   
141.     catch (Exception err)   
142.     {   
143.     //输出异常信息   
144.     Response.Write(err.ToString());   
145.     }   
146.     }   
147.     }   
148.     }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值