5

我有一个包含多个字段的 GridView,其中一个字段可能具有疯狂的广泛价值,如下所示:

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

如果这种事情在现场,我希望它包装。

我可以很容易地每隔 50 个字符左右在代码中插入一个字符……但是什么字符?如果我使用\r\n空格等,那么有时设置不会换行(因为不同行的 50 个字符更宽),我会得到这样的结果:

嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯
嗯嗯嗯
嗯嗯

我不希望这些空间出现;如果可以的话,我只希望该行在此处换行,否则什么也不显示:

嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯
嗯嗯嗯

另外,如果可能的话,我宁愿打开HtmlEncode 。有没有办法做到这一点?

4

4 回答 4

5

ItemStyle-Wrap="true" ItemStyle-Width="100" 不适用于一个没有空格的长单词。

找到了解决方案:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Cells[1].Attributes.Add("style", "word-break:break-all;word-wrap:break-word");
                }
            }

其中 Cells[1] 是要包装的列。

于 2013-05-31T05:34:04.537 回答
4

将这些 CSS 行粘贴到一个类中,并将该类粘贴到您的网格项目中

white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */
white-space: -pre-wrap; /* Opera 4 - 6 */ 
white-space: -o-pre-wrap; /* Opera 7 */ 
white-space: pre-wrap; /* CSS3 */ 
word-wrap: break-word; /* IE 5.5+ */
于 2008-12-03T22:01:51.070 回答
0

你可以在这里做一些事情。

一种选择是将有问题的列更改为 TemplateColumn,并在其中放置一个 div,并能够生成滚动条。我真的建议不要这样做。

如果您使用 CRLF (\r\n),那么您需要将其包装到PRE标签中,并且您希望将字体事实更改为等宽字体(例如 Courier),以便 50 个字符始终是相同的长度。

如果您想要一个 HTML 解决方案,那么只需将BR标记插入文本的适当位置即可。

现在,您还需要确保您正在检查字符串的长度(确保它大于您的幻数长度),并且它不包含空格(因为空格将允许换行) , 在插入 CRLF 或 BR 之前。

于 2008-12-03T21:56:26.137 回答
0

您可以在 GridView 中使用以下模板字段属性

ItemStyle-Wrap="true" ItemStyle-Width="100"

您必须设置宽度,否则文本将不会被换行。

于 2011-08-05T15:04:57.273 回答