2013-05-15 52 views
1

我有一個變量str,它有一些文字。我只是在我的用戶界面上顯示這些文字。 但我有一個條件,假設這個變量有5oo個單詞,所以我需要在每50個單詞後加上一個
標籤。在某些文字後加上<br />標籤

我該怎麼做?

下面

是我的C#代碼,通過它我送郵件的HTML

Emailbody += " <tr>"; 
Emailbody += " <td align='left' valign='Top' nowrap><span class=style17>Purpose of  travel</span></td>"; 
Emailbody += "<td align='center' valign='Top'>:</td>"; 
Emailbody += " <td align='left' valign='Top'><span class=style17>&nbsp;&nbsp;" + TextBox1.Text +  "</span></td>"; 
Emailbody += " <td>&nbsp;</td>"; 
Emailbody += " <td align='left' nowrap'><span class=style17>Advance</span></td>"; 
Emailbody += " <td align='center'>:</td>"; 
Emailbody += "<td align='left' nowrap><span class=style17>"+TextBox2.Text+"</td>"; 
Emailbody += " </tr>"; 

我需要的解決方案爲MT TextBox1.Text

+1

顯示我們請的你做了一些代碼。 –

+1

@Christian馬克任何解決方案? – Gaurav

+0

[Word自動換行多行字符串](http://stackoverflow.com/q/3961278/254830) – doppelgreener

回答

1

如果您使用的是C#,那麼你可以這樣做:

public string SplitLine(string input) 
    { 
     var wordList = input.Split(' '); 
     var sb = new StringBuilder(); 
     for (int index = 0; index < wordList.Length; index++) 
     { 
      if(index % 50 == 0 && index > 0) 
       sb.Append("<br/>" + wordList[index]); 
      else 
       sb.Append(wordList[index] + ' '); 
     } 
     return sb.ToString(); 
    } 
0

使用JavaScript如下:

var count=0; 
for(var i=0;i<str.length;i++) 
{ 


    if((str[i])=="") 
    { 
    count++; 
    if(count==50) 
    { 
     str[i]="<br/>" 
     count=0; 
    } 
    } 

} 

希望它有幫助。

+1

他要求在50個單詞之後添加一個新行,而不是在x個字符之後,爲什麼用count而不是i? –

+0

他提出了「假設」,意思就是舉個例子來說明他提到過50個字的東西。 – Freelancer

+1

當您插入換行符時,您是否應將計數設置爲0? 'str [count] =「
」'(它是'
'或'
',而不是'
')嘗試向行中插入換行符?這似乎並沒有工作 - [也許這可能是有用的](http://stackoverflow.com/q/4313841/254830)。 – doppelgreener

0

我想你想在c#中做到這一點?

看看possible duplicate。給定的函數允許您指定一個字符或單詞的數量,而不是像素的線寬,並且使用字體和字體大小來計算合適的長度。你必須適應你的HTML輸出,但其餘的保持不變。

您可以使用列表,然後是這樣的:

List<string> lines = WrapText(TextBox1.Text, 300, "Calibri", 11); 

string longText = string.Empty 

foreach (var item in lines) 
{ 
    longText += item + "</br>"; 
} 

Emailbody += " <tr>"; 
Emailbody += " <td align='left' valign='Top' nowrap><span class=style17>Purpose of travel</span></td>"; 
Emailbody += "<td align='center' valign='Top'>:</td>"; 
Emailbody += " <td align='left' valign='Top'><span class=style17>" + longText + "</span></td>"; 
Emailbody += " <td>&nbsp;</td>"; 
Emailbody += " <td align='left' nowrap'><span class=style17>Advance</span></td>"; 
Emailbody += " <td align='center'>:</td>"; 
Emailbody += "<td align='left' nowrap><span class=style17>"+TextBox2.Text+"</td>"; 
Emailbody += " </tr>"; 
+3

你不應該在你的名字下重新發布相同的答案 - 簡單的「可能重複」評論就足夠了。 –

+0

FormattedText屬於web.Mvc命名空間,但它不顯示在我的cs文件中,而是顯示錯誤,您缺少程序集引用 – Gaurav

+1

我同意@Alexei。此外,如果你打算髮布他人的作品,至少明確表示贊同作者,並指出這不是你的工作。 – doppelgreener