【发布时间】:2021-07-08 15:14:17
【问题描述】:
我正在从 Dynamics CRM 获取数据,并且某些字段属于多行文本类型。
我只能使用 en.GetAttributeValue<string>("multiline_field_name") 将它们作为字符串读取。
我的问题是我在 HTML 标记中呈现所述字符串并且某些单词中断。
例如
container div
************************
This is a very long stri
ng. Any help would be ve
ry much appreciated.
************************
我的容器元素只能包含超过 100 个字符,所以我想我会在每 100 个字符处断开字符串。
这是我的代码:
private string SplitOnNewLine(string str)
{
StringBuilder sb = new StringBuilder();
int splitOnIndex = 100;
int cnt = 1;
for(int i = 0; i <str.Length; i++)
{
if(i % splitOnIndex == 0 && i != 0)
{
if(str[i] == ' ')
{
sb.Insert(i, "<br>");
}
else
{
// Go backwards until space is found and append line break
int copied = splitOnIndex * cnt;
if (copied >= str.Length) break;
do
{
copied--;
if(str[copied] == ' ')
{
sb.Insert(copied, "<br>");
break;
}
}while (str[copied] != ' ');
}
cnt++;
}
else
{
sb.Append(str[i]);
}
}
return sb.ToString();
}
它仍然无法按预期工作。 我希望是这样的:
container div
************************
This is a very long
string. Any help would
be very much
appreciated.
************************
附:我也尝试过使用分词和自动换行 CSS 规则,但无济于事。
【问题讨论】:
-
在空间上拆分并检查当前行是否适合更多块不是更简单吗?
-
能否请您添加您当前呈现的 HTML?我希望 CSS 应该能够处理这个问题。
-
我在
- 标签内渲染它。未应用任何 CSS 规则
标签: c# dynamics-crm word-break