如何在asp.net中使用FreeTextBox控件
步骤一:解压freetextbox-3.1.6只要将freetextbox.dll、ftb.imagegallery.aspx和aspnet_client文件夹拷贝到项目文件夹中,和我们的test.aspx在相同的目录下中,其中freetextbox.dll放到bin文件夹下并且在vs2008中添加引用(其实freetextbox.dll不需要拷贝进项目文件夹,只需要"解决方案->右键->添加引用"后bin文件夹中会自动产生freetextbox.dll)。
步骤二:将freetextbox做成空间添加到工具箱中,这在前一篇文章中写过,点击进入查看。
步骤三:往aspx文件中添加控件freetestbox,并修改其属性。修改后的控件属性如下:
<ftb:freetextbox id="free1"
imagegallerypath="~/images"
language="zh-cn" runat="server"
buttondownimage="true"
toolbarlayout="paragraphmenu,fontfacesmenu,fontsizesmenu,
fontforecolorsmenu,fontforecolorpicker,fontbackcolorsmenu,
fontbackcolorpicker|bold,italic, underline,strikethrough,superscript,
subscript,removeformat|justifyleft,justifyright,
justifycenter,justifyfull;bulletedlist,numberedlist,indent,outdent;createlink,unlink,
insertimage|cut,copy,paste,delete;undo,redo,print,save|symbolsmenu,stylesmenu,
inserthtmlmenu|insertrule,insertdate,inserttime|inserttable,edittable;inserttablerowafter,
inserttablerowbefore,deletetablerow;inserttablecolumnafter,inserttablecolumnbefore,
deletetablecolumn|insertform,inserttextbox,inserttextarea,insertradiobutton,
insertcheckbox,insertdropdownlist,insertbutton|insertdiv,editstyle,insertimagefromgallery,
preview,selectall,wordclean,netspell" >
</ftb:freetextbox>
步骤四:在 ftb.imageegallery.aspx 中设置属性
<ftb:imagegallery id="imagegallery1" supportfolder="~/aspnet_client/freetextbox/"
allowimagedelete="true" allowimageupload="true"
allowdirectorycreate="true" allowdirectorydelete="true" runat="server" />
这些属性表示允许删除图片和上传图片,允许创建文件夹和删除文件夹 。
注意:
完成以上这些,我们在test.aspx的设计视图下,还是无法看到那些文本编辑器按钮,只能看到的是“freetextbox:free1”这么一个空白界面,原本我以为没有操作成功,所以上面的步骤重复了好多次,但依旧是这样,后来在浏览器下打开发现原来操作已经成功了,前面做了很多无用功。呵呵。
实例
在aspx文件中再添加一个testbox做文章的“标题”,一个按钮button“提交”。
test.aspx.cs:
protected void btnsubmit_click(object sender, eventargs e)
{
string title = this.textbox1.text;
string content = this.free1.text;
newsbus.addnews(title,content);
//response.redirect("");
content = newsbus.getlatenews().tables[0].rows[0][2].tostring();
response.write(content);//输出最新插入的那条新闻的内容
}
appcode中newsbus.cs:
public static bool addnews(string title ,string content)
{
string strsql = "insert into test(title,content) values(@title,@content)";
sqlparameter[] paras = new sqlparameter[2];
paras[0] = new sqlparameter("@title", sqldbtype.varchar);
paras[0].value =title;
paras[1] = new sqlparameter("@content", sqldbtype.varchar);
paras[1].value =content;
if (newsdb.getcmd(strsql, paras))
{
return true;
}
return false;
}
public static dataset getlatenews()
{
string strsql = "select top 1 * from test order by id desc";
return newsdb.getds(strsql);
}
appcode中newsdb.cs:
public static sqlconnection creatcon()
{
string str=configurationmanager.appsettings["conn"];
return new sqlconnection(str);
}
public static dataset getds(string strsql)
{
sqlconnection con=newsdb.creatcon();
dataset ds= null;
try
{
sqldataadapter da = new sqldataadapter(strsql, con);
ds = new dataset();
da.fill(ds);
}
catch (exception er)
{
throw er;
}
return ds;
}
web.config
<configuration>
<appsettings>
<add key="conn" value="data source=xuwei/sqlexpress;initial catalog=testdatabase;user id=dnndemo;password=dnndemo" />
</appsettings>
</configuration>
最后在标题和内容栏中输入文字,并且添加图片,点击“提交”以后会显示刚输入的内容。其中就包括图片。
其实原理很简单,freetextbox在我们将内容栏中的文本输入到数据库的指定字段以后,会判断我们有没有插入图片,
如果有图片则将图片的地址也写入“内容”字段中。
比如我们在freetextbox的文本框中输入文本:“内容栏,插入图片”,然后再插入一个叫做"pic.jpg","提交"完成以后我们去数据库的表test中看字段content的内容如下:
<p>内容栏,插入图片</p>
<p><img height=366 alt=未命名.jpg src="/testftb3/images/pic.jpg" mce_src="testftb3/images/pic.jpg" width=950 border=0></p>
而在images目录下我们也能找到刚才插入的图片"pic.jpg"。这个是由
<ftb:freetextbox id="free1"
imagegallerypath="~/images" ...
</ftb:freetextbox>