现在的位置: 首页 > 综合 > 正文

label自动换行代码(IE FireFox)

2013年06月30日 ⁄ 综合 ⁄ 共 3978字 ⁄ 字号 评论关闭

FireFox文本自动换行处理,如何实现FireFox文本自动换行

文本自动换行IE中解决方法:

Code

注:在要换行的内容相应的单元格或者DIV里加入,如:

Code

文本自动换行FireFox中解决方法(脚本):

Code

注:以上脚本放在</head>前面.

调用时如下写法:

同个页面单处调用:

<div id="content">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content");</script>

同个页面多处调用:

<div id="content">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content");</script>
<div id="content2">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content2");</script>

注:把应用的JS写在</div>后面,其中60表示一行要显示多少字字符,注意多个调用时ID的相应变化,不能同一个ID名称,应用上面的方法后IE也会是按设定的字符数换行,但是IE里面支持自动换行,所以只要判断一下是否为IE,如果不是IE就不要输出上面的

<script language="javascript">toBreakWord(60, "content");</script>

这段JS,如果不是就要输出。

我现在的做法是,建一个自定义用户控件

控件页面代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MultiTextControl.ascx.cs" Inherits="Controls_MultiTextControl" %>
<div style="width:<%=Width %>px;word-wrap:break-word; overflow:auto;" class="<%=CssClass %>">
<%=Text%>
</div>

后台代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;

/// <summary>
/// Author:Jolly-Zhang
/// </summary>

public partial class Controls_MultiTextControl : System.Web.UI.UserControl
{
    
private string strText;
    
public string Text
    
{
        
get return GetText(); }
        
set { strText = value; }
    }


    
private int iWidth = 100;

    
public int Width
    
{
        
get return iWidth; }
        
set { iWidth = value; }
    }


    
private int iHeight;

    
public int Height
    
{
        
get return iHeight; }
        
set { iHeight = value; }
    }


    
private string strCssClass;

    
public string CssClass
    
{
        
get return strCssClass; }
        
set { strCssClass = value; }
    }


    
private bool isReplace;
    
/// <summary>
    
/// 是否替换尖括号
    
/// </summary>

    public bool IsReplaceLTGT
    
{
        
get return isReplace; }
        
set { isReplace = value; }
    }



    
protected void Page_Load(object sender, EventArgs e)
    
{

    }


    
/// <summary>
    
/// 判断当前浏览器是IE还是火狐,
    
/// 如果是IE则不做做处理,因为IE支持样式换行
    
/// 如果是火狐就判断其每行是否大于宽(除以11),大于则自动加换行符。
    
/// </summary>
    
/// <returns></returns>

    protected string GetText()
    
{
        
string strContent = string.Empty;
        
if (string.Compare(Request.Browser.Browser, "IE", StringComparison.OrdinalIgnoreCase) == 0)
        
{
            strContent 
= strText;
            
if (isReplace)
            
{
                strContent 
= strContent.Replace("<""&lt;").Replace(">""&gt;").Replace("\r\n""<br>").Replace("\n""<br>");
            }

        }

        
else
        
{
            
string[] separator ="\r\n","\n" };
            
string[] strWrap = strText.Split(separator, StringSplitOptions.None);
            
int iMaxLength = (iWidth / 11);
            StringBuilder strTemp 
= new StringBuilder();
            
for (int i = 0; i < strWrap.Length; i++)
            
{
                strContent 
= strWrap[i];
                
while (strContent.Length > iMaxLength)
                
{
                    strTemp.Append(strContent.Substring(
0, iMaxLength) + "\r\n");
                    strContent 
= strContent.Substring(iMaxLength);
                }

                strTemp.Append(strContent 
+ "\r\n");
            }

            strContent 
= strTemp.ToString();
            
if (isReplace)
            
{
                strContent 
= strContent.Replace("<""&lt;").Replace(">""&gt;").Replace("\r\n""<br>");
            }

        }

        
return strContent;
    }

}

抱歉!评论已关闭.