说明:采用TextBox当编辑器,输入数据之后,存入数据库,显示数据的时候仍然保持原格式。虽然成功了,但是总觉得有什么隐患。目前做项目都是用ewebedit 或 fck 所以没有那么多问题需要考虑。
<%@ Page Language="C#" ValidateRequest="false" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected string str = "select b from comit2";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Bind();
}
}
private void Bind()
{
DataSet ds= SqlHelper.ExecuteDataSet(SqlHelper.sqlstr,CommandType.Text,str,null);
rep.DataSource = ds;
rep.DataBind();
this.Literal1.Text = "<pre>" +Server.HtmlEncode(ds.Tables[0].Rows[0]["b"].ToString()) + "</pre>";
}
protected void Button1_Click(object sender, EventArgs e)
{
string strsql = "insert into comit2 values(1,@b)";
SqlParameter parm = new SqlParameter("@b", SqlDbType.VarChar, 4000);
parm.Value = this.TextBox1.Text;
SqlHelper.ExecuteNonQuery(SqlHelper.sqlstr, CommandType.Text, strsql, parm);
Bind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>打造万能的留言版</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="rep" runat="server">
<HeaderTemplate><table></HeaderTemplate>
<ItemTemplate><tr><td>留言内容</td></tr>
<tr><td><%#"<pre>"+Server.HtmlEncode(Eval("b").ToString())+"</pre>"%></td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:Repeater>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
<br />
<asp:TextBox ID="TextBox1" runat="server" Height="273px" TextMode="MultiLine"
Width="643px" MaxLength="4000"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
</form>
</body>
</html>