欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Lable中进行换行解决方案

程序员文章站 2024-03-04 23:59:42
这个问题,应该算是很简单的问题,可说实在的,折腾了2个小时的时候,后面整出来的时候,真坑爹呢。现在把这个过程给大家,希望可以给大家一个提醒。一、vb.net asp.net...

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

一、vb.net asp.net问题还原

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

ASP.NET Lable中进行换行解决方案

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

ASP.NET Lable中进行换行解决方案

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

解决方案

关键字: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。看到没,超出的字段没有进行换行,很难看。

ASP.NET Lable中进行换行解决方案

这个我们需要在当前元素的父级元素加一个样式就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>

显示的结果如下:

ASP.NET Lable中进行换行解决方案

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

二、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那设置一个断点,

ASP.NET Lable中进行换行解决方案

看上面,我没有设置什么,就自动的识别了 换行符号:\r\n,那接下来就很好处理了:

复制代码 代码如下:

protected void button1_click(object sender, eventargs e)
{
label1.text = textbox1.text.replace("\r\n", "<br>");
}

就ok啦。

ASP.NET Lable中进行换行解决方案

就可以了。

三、winform

那在winform中呢,那就更简单了,你都不需要处理,把的值直接赋值到textbox就ok啦。

复制代码 代码如下:

label1.text = textbox1.text;

ASP.NET Lable中进行换行解决方案

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