asp.net生成静态页并分页+ubb第1/2页_实用技巧


作为练习我加入了“插入代码”“插入运行代码”,大家可以看情况,加入其他UBB。

2、代码:
default.aspx.cs

复制代码 代码如下:

using System;
using System.Data;
using System.Configuration;
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 System.Text.RegularExpressions;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnOk_Click(object sender, EventArgs e)
{
string path = Server.MapPath("~/template/news.htm");
string toPath = Server.MapPath("~/news/");
string[] tempContent = new string[] { };
string s1 = ReadFile(path);
string title = this.tbxTitle.Text;
string content = UBB(this.tbxContent.Text);
string s3 = string.Empty;
content = content.Replace("[ page]","¤");
tempContent = content.Split('¤');
string pageNav = string.Empty;
for (int j = 0; j < tempContent.Length; j++)
{
pageNav += "<a href='" + (j + 1) + ".htm'>第" +(j + 1) + "页</a> ";
}
for (int i = 0; i < tempContent.Length; i++)
{
s3 = s1.Replace("$title$", title);
s3 = s3.Replace("$content$", tempContent[i].ToString());
s3 = s3.Replace("$pagelist$",pageNav);
WriteFile(toPath + (i + 1) + ".htm", s3);
s3 = string.Empty;
}
}

//ubb替换
public String UBB(string sDetail)
{
sDetail = Server.HtmlEncode(sDetail);
sDetail = sDetail.Replace("\r\n","<br />");
Regex r;
Match m;
//code
r = new Regex(@"(\[code\])([\s\S]+?)(\[\/code\])", RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
sDetail = sDetail.Replace(m.Groups[0].ToString(), "<textarea style=\"border:1px solid #94BBE2;background:#FAFAFA;width:90%;cursor:default;padding:5px;\" rows=\"15\" >" + m.Groups[2].ToString().Replace("<br />","\n")+ "</textarea><br />");
}

int i = 1;
//html
r = new Regex(@"(\[html\])([\s\S]+?)(\[\/html\])",RegexOptions.IgnoreCase);
for (m = r.Match(sDetail); m.Success; m = m.NextMatch())
{
i = i + 1;
sDetail = sDetail.Replace(m.Groups[0].ToString(),"<textarea rows=\"12\" style=\"width:90%\" id=\"code" + i + "\">" + m.Groups[2].ToString().Replace("<br />","\n") + "</textarea><br /><input type='button' value='运行代码' onclick=\"runCode('code" +i+ "')\" /><input type='button' value='复制代码' onclick=\"copyCode('code" +i+ "')\" />");
}
return sDetail;
}

//写文件
public static void WriteFile(string Path, string Strings)
{
if (!System.IO.File.Exists(Path))
{
System.IO.FileStream f = System.IO.File.Create(Path);
f.Close();
}
System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, false, System.Text.Encoding.GetEncoding("utf-8"));
f2.Write(Strings);
f2.Close();
f2.Dispose();
}

//读文件
public static string ReadFile(string Path)
{
string s = "";
if (!System.IO.File.Exists(Path))
s = "不存在相应的目录";
else
{
StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("utf-8"));
s = f2.ReadToEnd();
f2.Close();
f2.Dispose();
}
return s;
}

}

当前1/2页 12下一页阅读全文

时间: 2024-09-20 12:07:43

asp.net生成静态页并分页+ubb第1/2页_实用技巧的相关文章

asp.net mvc4 mysql制作简单分页组件(部分视图)_实用技巧

在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstrap分页组件,这可以参考http://v3.bootcss.com/components/. 先将生成项目效果截图呈上: 这里有需要预先知道的,是mysql分页查询与mssql分页查询实现不同点在于,mysql支持limit语句,limit格式为 limit pageIndex*pageSize,p

生成多字段排序分页的SQL的通用类_实用技巧

如果的单一字段排序分页,现在有很多的存储过程和SQL语句,分页的时候,只取pageSize的记录,可遇见的问题是: 这个单一字段必须是唯一的 这个字段必须是可以被排序的 不支持多字段排序 针对这一问题,我用C#做了一个类,解决以上的对多字段排序分页和每次都取pageSize条记录的问题 先看看代码:  复制代码 代码如下: using System;  using System.Collections.Specialized;  namespace web  {      /// <summar

Asp.net生成静态页面并分页

asp教程.net生成静态页面并分页 <!doctype html public "-//w3c//dtd html 4.01 transitional//en""http://www.w3.org/tr/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <meta http-equiv="conte

MVC默认路由实现分页(PagerExtend.dll下载)_实用技巧

这两天在群里有人咨询有没有现成的.net mvc分页方法,由此写了一个简单分页工具,这里简单分享下实现思路,代码,希望能对大家有些帮助,鼓励大家多造些轮子还是好的. A.效果(这里用了bootstrap的样式) B.分析,知识点 a.分页通常由一下几个属性组成(当前页,总条数,分页记录数,路由地址),由此四项基本就能实现分页了,在加上一个控制样式的参数 b.各种数字的验证,计算总页数(如果总条数和分页记录数不能整除,那么最后相除的结果再+1) c.下一页和上一下的按钮是零界点,需要判断是否是最后

学习制作MVC4分页控件(上)_实用技巧

浏览栏目下内容的时候肯定要用到分页,MVC4下没有带分页控件,那么就自己写一个HtmlHelper-Pager.写之前看了一些大神的分页控件,启发很大.先设想一下自己的分页控件 分页控件分普通分页(Pager)和Ajax分页(PagerAjax)两块.两块的显示相同,如图: 各部说明: 在开始写之前还要先有两个类:一个是分页设置类,一个是分页数据类.  分页的设置类包含了常用的分页参数,是为了方便保存到数据库中,可以直接在栏目中设置该栏目下每页显示的记录数:记录的计量单位:是"条"还是

ASP.NET实现多域名多网站共享Session值的方法_实用技巧

ASP.NET实现多域名多网站共享Session值 1.实现功能:可设置哪些站点可以共享Session值,这样就防止别人利用这个去访问 要想实现这个功能就必须得把Session值 放入数据库中, 所有我们先在VS命令工具下注册一个 命名如下:aspnet_regsql.exe -S [数据库服务地址] -E -ssadd 具体格式请参考 /? 添加成功后我们休要对ASP.NET生成的存储过程进行简单的修改, 打开ASP.net为我们创建的数据库"ASPState" 找到存储过程&quo

学习制作MVC4分页控件(下)_实用技巧

上一次做分页控件的时候设想的把分页设置类保存到数据库,后来觉得的没必要这么做.分页的包括htmlhelper 数据模型和分页设置都在PagerExtensions.cs中,不跟数据库发生关系,当其他项目中需要用分页的时候直接拷贝这个文件过去就可以直接用.栏目中的分页设置直接在栏目中添加字段然后在控制器中new一个PagerConfig,然后设置响应值. 修改后的PagerConfig说明 PagerConfig类 /// <summary> /// 分页配置 /// </summary&

Asp.NET 生成静态页面并分页的代码_实用技巧

1.静态模板页面 template.html,主要是定义了一些特殊字符,用来被替换. 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" co

ASP生成静态文件编码为UTF-8格式的HTML文件_应用技巧

一般我们在ASP环境下,运行动生静操作时都用到的是FSO,他是专门对文件进行操作的一个组件,他FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO组件生成的文件都是gb2312格式的了,即便您在网页内写上charset="utf-8"也是没用的 要生成utf-8格式的文件,ASP环境下我们用 ADODB.Stream代替FSO读写utf-8文件,因为,ADODB.Stream,有一个CharSet 属性,可以让您定义要打