在WebGrid列中包装文本

时间:2013-09-07 23:45:35

标签: css asp.net-mvc webgrid textwrapping

我正在研究MVC 4中的一个项目,我利用WebGrid为我的模型显示各种数据元素。

目前,我的一个模型具有可容纳大量文本的文本属性。然而,当它通过WebGrid显示时,文本无法包装并扩展网格的长度。毋庸置疑,这看起来非常丑陋并且使文本难以阅读。

有没有办法: a)在WebGrid中包装特定列的文本 b)使用CSS以某种方式设置网格或列的样式以达到相同的效果。

我已经就这个主题做了很多研究,但没有提出任何直接适用于这个简单场景的事情。

我找到的最有用的链接is this one,但它有些陈旧,并没有直接满足我的需求。

我无法想象为什么文本环绕不包含在WebGrid的基本实现中,但它似乎不是其整体功能的一部分。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你使用CSS来管理这种事情。 WebGrid呈现HTML表,以便您可以为表声明样式,并在网格呈现时采用它们。

WebGrid中还内置了一些CSS钩子。您可以通过tableStyle参数指定单个表使用的CSS类:

grid.GetHtml(tableStyle: "myStyle")

或者您可以在列级别应用样式:

grid.GetHtml(
    columns: grid.Columns(
        grid.Column(("ID"),
        grid.Column("MyText", style: "wordwrap")
    )
)

我在这里详细介绍了WebGrid:http://www.mikesdotnetting.com/Article/154/Looking-At-The-WebMatrix-WebGrid

要使用CSS包装单词,您需要在表格上table-layout: fixed和表格单元格上word-wrap:break-word组合使用。例如:How to force table cell <td> content to wrap?