欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET GridView中文本內(nèi)容無法換行(自動(dòng)換行/正常換行)

 更新時(shí)間:2013年02月01日 10:08:23   作者:  
用GridView來顯示課程表,每個(gè)單元格的內(nèi)容包括課程名、上課地點(diǎn)、教師姓名,然后我想讓它們分行顯示,感興趣的朋友可以了解下,或許對你有所幫助
最近做項(xiàng)目的時(shí)候,遇到這樣一個(gè)問題:我用GridView來顯示課程表,每個(gè)單元格的內(nèi)容包括課程名、上課地點(diǎn)、教師姓名,然后我想讓它們分行顯示,效果如下圖:


可是呢,GridView太頑強(qiáng)了,不管我拼接字符串時(shí)用“\r\n”還是"<br/>",結(jié)果都無濟(jì)于事,都不分行顯示。經(jīng)過近半天的時(shí)間查詢資料,最終終于解決了這個(gè)問題,下面就與大家分享一下。

GridView中的換行問題可以分為兩類:一類是自動(dòng)換行,另一類是正常換行。

先說第一類:自動(dòng)換行

GridView默認(rèn)是自動(dòng)換行,就是說當(dāng)顯示的字符串比較長的時(shí)候,GridView會(huì)自動(dòng)換行。

比如我們要顯示:“當(dāng)字符串比較長的時(shí)候就會(huì)自動(dòng)換行換行了”,效果如下:


當(dāng)然,如果我們不想讓它自動(dòng)換行,在頁面后臺(tái)添加如下代碼即可:

復(fù)制代碼 代碼如下:

//正常換行
GridView1.Attributes.Add("style","word-break:keep-all;word-wrap:normal");

添加后效果圖如下:


下面說說第二類:正常換行

正常換行的關(guān)鍵在于換行符的選取,有人說用轉(zhuǎn)義字符"\r\n",也有人說用"<br/>"。那到底用哪個(gè)呢?下面先看看這兩種的顯示效果:

1、顯示字符串:"當(dāng)字符串"+ "\r\n" + "比較長的\r\n時(shí)候就會(huì)自動(dòng)換行換行了"

顯示效果圖如下(和沒加一樣):


2、顯示字符串:"當(dāng)字符串比較長的時(shí)候"+ "<br />" + "這里就換行了"

顯示效果圖如下:


由上可以看出,單憑加個(gè)換行符是不能解決問題的。正確的解決方法如下:

1、應(yīng)該使用 "<br/>"

2、
①如果你綁定字段為設(shè)置模版列,那么把對應(yīng)的BoundField設(shè)置參數(shù)HtmlEncode= "false" 即可。

②如果為自動(dòng)生成字段:請?zhí)砑覩ridView1_RowDataBound事件

復(fù)制代碼 代碼如下:

/// <summary>
/// 使得GridView中的內(nèi)容可以換行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCellCollection cells = e.Row.Cells;
foreach (TableCell cell in cells)
{
cell.Text = Server.HtmlDecode(cell.Text); //注意:此處所有的列所有的html代碼都會(huì)按照html格式輸出,如果只需要其中的哪一列的數(shù)據(jù)需要轉(zhuǎn)換,此處需要小的修改即可。
}
}
}

看看添加完后的顯示效果:

顯示字符串:"當(dāng)字符串"+ "<br />" + "比較長的時(shí)候" + "<br />" +"這里就換行了"

顯示效果:


到此為止,問題就完美解決了。

相關(guān)文章

最新評(píng)論