文章内容为何不能以正常格式显示?急!
要求:1.从SQLSERVER中存取数据
2.能按一般公文格式显示文章内容,段落首行空两格,段落之间空一行.
按我写的代码,输入文章内容,再从数据库中提取内容却不能按要求格式显示,所有有空格的位置都是?号.
以下是代码:
输入//input.aspx.cs//
string neirong=Body.Value;//Body是个textarea控件
String neirong2;
neirong2=Server.HtmlEncode(neirong);
String zh="";
String tmpstr="";
for (int i=0; i<neirong2.Length;i++)
{
zh=neirong2.Substring(i,1);
if (zh==" ") { zh=" ";} //这行在SHOW.ASPX中的显示有问题
if (zh=="\n") { zh="<br>"; }
if (zh=="\t") { zh=" ";}//这行好象没用
tmpstr=tmpstr+zh; }
neirong2=tmpstr;
string content=neirong2;
//显示页面show.aspx//
<%=Server.HtmlDecode(content)%>
请问这是哪里出了问题?
问题点数:50、回复次数:16Top
1 楼fanweiwei(黑暗凝聚力量,堕落方能自由)回复于 2005-04-04 14:28:20 得分 0
恩学习Top
2 楼autohero(康夫)回复于 2005-04-04 15:12:20 得分 0
有没有人知道啊?Top
3 楼csdn5201(破剑)回复于 2005-04-04 16:37:11 得分 0
zh=neirong2.Substring(i,1);
zh输出是不是正常呀?是+1还是加2呀?
Top
4 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-04 16:48:02 得分 20
哎,不要你那样痛苦啊。。。。汗。。
还不用循环呢,我告诉你如何做哈。。
neirong2=Server.HtmlEncode(neirong);
之后就可以
neirong2=replace(neirong2,\n,"<br> ");
这样不就解决了。因为C#我不太懂哈,\n不知道是不是换行的,呵呵,你这样试试先,应该可以Top
5 楼autohero(康夫)回复于 2005-04-04 16:54:05 得分 0
neirong2=replace(neirong2,\n,"<br> ");
这句是写在显示的ASPX文件里吗?Top
6 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-04 16:55:18 得分 0
neirong2=replace(neirong2,"\r\n","<br> ");
对不起好像要这样,你看看,呵呵,如果有问题CALL我端信,C#不太懂,Top
7 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-04 16:58:44 得分 0
错,不是,要在后台给他过滤好后。
你在前台最后加个label控件,然后在前台就可以
<asp:label id="lblcontent" runat="server"></asp:label>
然后在后台照你的代码
以下是代码:
输入//input.aspx.cs//
string neirong=Body.Value;//Body是个textarea控件
String neirong2;
neirong2=Server.HtmlEncode(neirong);
neirong2=replace(neirong2,"\r\n","<br><br> ");
lblcontent.Text=neirong2;
这样在前台应该能显示换行,什么出来了吧,?恩哼
Top
8 楼hchxxzx(NET?摸到一点门槛)回复于 2005-04-04 17:08:00 得分 30
给你一个标准换行函数吧
/// <summary>
/// 将无格式的文本处理成有格式的文本
/// </summary>
/// <param name="mystr">要处理的文本</param>
/// <returns>返回带换行等格式的文本</returns>
public string MyReplace(string mystr)
{
if(this.MyisNull(mystr))
{
return(" ");
}
else
{
mystr = mystr.Replace("\n\r","<br>");
mystr = mystr.Replace("\r","<br>");
mystr = mystr.Replace("\t"," ");
return(mystr);
}
}
Top
9 楼autohero(康夫)回复于 2005-04-04 17:16:37 得分 0
不行啊
replace 是个什么函数?在哪个名字空间里Top
10 楼autohero(康夫)回复于 2005-04-04 17:18:55 得分 0
刚才 hackate回的文 没看到 再试试Top
11 楼hchxxzx(NET?摸到一点门槛)回复于 2005-04-04 20:07:59 得分 0
this.MyisNull(mystr)
MyisNull是我自己写的函数,判断文本串是否为空,是则返回真,否则为假
/// <summary>
/// 判断传递的内容是否为空或null,是则返回真,不为空则返回假
/// </summary>
/// <param name="myStr">要判断的文本对象</param>
/// <returns>为空则返回真,否则返回假</returns>
public bool MyisNull(Object myObj)
{
string str = myObj + "a";
if(str.Length == 1)
{
return(true);
}
else
{
return(false);
}
}
Top
12 楼autohero(康夫)回复于 2005-04-08 17:37:24 得分 0
hchxxzx,还是有点问题,段落的开头总是顶格,如何才能让段落的开头再显示时空两格,我应如何输入.Top
13 楼wula0010(wula0010)回复于 2005-04-08 18:49:29 得分 0
replace(neirong2," "," ");Top
14 楼Bruce_H21(麦克屎高飞)回复于 2005-04-08 20:07:15 得分 0
把show.aspx的Server.HtmlDecode(content)中的Server.HtmlDecode()去掉,剩下Content即可。
Top
15 楼Bruce_H21(麦克屎高飞)回复于 2005-04-08 20:12:23 得分 0
没那么麻烦,HTML代码不需用Server.HtmlDecode()Top
16 楼hchxxzx(NET?摸到一点门槛)回复于 2005-04-08 22:13:59 得分 0
顶格,你要检查是不是原来文件就是顶格
你可以写一个正常缩进的文本,让他显示出来,看看会不会顶格。Top




