在没有可见空间的情况下包装GridView文本

Rya*_*ndy 5 html asp.net gridview

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

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

如果这种事情是在场上,我希望它来包装.

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

mmmmmmmmmm
mmmmm
llllllllll llllllllll llll

我不希望那些空间出现; 如果可以,我只想让线包裹在那里,否则什么都不显示:

mmmmmmmmmm
mmmmm
llllllllllllllllllllllllll

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

小智 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");
                }
            }
Run Code Online (Sandbox Code Playgroud)

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


Ste*_*ton 0

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

一种选择是将相关列更改为 TemplateColumn,并在其中放置一个 div,并能够生成滚动条。我真的建议反对这一点。

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

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

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