视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ASP.NET Lable中进行换行解决方案
2020-11-27 22:42:03 责编:小采
文档


这个问题,应该算是很简单的问题,可说实在的,折腾了2个小时的时候,后面整出来的时候,真坑爹呢。现在把这个过程给大家,希望可以给大家一个提醒。

一、VB.NET ASP.NET问题还原

当我对一条数据进行编辑的时候,我们进入了编辑页面,比如下面页中的Work Araound字段

我对这些字段填了一些内容。我通过回车,分成了一段一段,可是,当我们保存这个编辑页面的时候,结果如下:

可以很清楚看到显示出来的值没有分段。显示效果很不友好。

解决方案:

关键字:vbCrLf(因为项目需要,所以用的是VB.NET 以及VS2005,让大家见笑了),我通过下面的代码获取到每当你回车的时候,然后我就先获取到回车符,然后再转行成“|”,这样一并存入数据库。(其实,这里有一个缺点,就是“|” 成了一个不能用的一个字符了。)
代码如下:
Dim strTextArea As String = Replace(TextArea1.Value, vbCrLf, "|") 这句话等价于下面的:Dim strTextArea As String = TextArea1.Value.Replace(vbCrLf, "|")

接着,当我们在从数据库读取出来的时候,我们在用下面的这个替换:
代码如下:
Label1.Text = strTextArea.Replace("|", "<br>")

然后,到这里就到了基本OK了。在中间的时候绕了一下,我们貌似得到了期望的结果。

其实,这里面还有一个问题,就是当每一条都很长的时候,就会出现下面的bug。看到没,超出的字段没有进行换行,很难看。

这个我们需要在当前元素的父级元素加一个样式就OK啦,就是word-break:break-all,然后就会自动换行了。
代码如下:
<TD style="WIDTH: 451px; word-break:break-all">
<textarea id="txtReleaseNoteComment" cols="51" rows="10" runat="server" visible="false"></textarea>
<asp:Label ID="lbl_releaseNotedComment" runat="server" Text="" Visible="False" width="450px"></asp:Label>
</TD>

显示的结果如下:

点评:感觉,绕了一个弯似的。可是,就先这么用着吧,反正先提交再说!

二、C# ASP.NET的情况呢

那处理就简单多了呢。环境:VS 2010

测试代码:
代码如下:
<asp:TextBox ID="TextBox1" runat="server" Height="105px" TextMode="MultiLine"
Width="320px"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

然后,我们在Button那设置一个断点,

看上面,我没有设置什么,就自动的识别了 换行符号:\r\n,那接下来就很好处理了:
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text.Replace("\r\n", "<br>");
}

就OK啦。

就可以了。

三、Winform

那在Winform中呢,那就更简单了,你都不需要处理,把的值直接赋值到textbox就OK啦。
代码如下:
label1.Text = textBox1.Text;

诶。你不得不感慨技术的先进哦。

下载本文
显示全文
专题