1

我不知道怎么称呼它,所以欢迎任何更改标题的建议。

我正在尝试将一个相当大的文本转换为“只显示一些字符......”之类的东西。显然,大文本以相同的字符串开头,但要长得多。

我的网格是只读的,当用户单击每一行时,我会将整个数据显示到对话框中。输入字段(在另一个页面中)是一个文本区域,因此用户可以写下大量数据以显示在网格中。我想保持每一行的高度相同。我也知道我必须清理文本以避免特殊字符和新行

我想这应该是一个 colModel 选项,但我找不到它。像这样的东西:

colModel :[
        {name:'notes', index:'notes', maxcharlength: 20},

非常感谢。

4

2 回答 2

1

classes您可以创建一个 CSS 类,该类将剪切文本并显示省略号,并使用属性将其分配给列。CSS 类看起来像这样:

.ellipsis {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

然后将其分配给这样的列:

colModel :[
    {name:'notes', index:'notes', maxcharlength: 20, classes: 'ellipsis'},
于 2013-03-26T16:55:04.720 回答
0

最后,感谢 Oleg 的链接,我可以填充网格剥离 html 并以这种方式显示省略号:

首先是一个CSS:

.ui-jqgrid tr.jqgrow td.textInDiv div {
    max-height: 50px;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
}

第二个列上的自定义格式化程序:

colModel :[
    {name: 'notes', classes: "textInDiv", 
          formatter: function (v) {
               return '<div>' + jQuery.jgrid.stripHtml(v) + '</div>';
          }
     }
 ]

注释以 html 形式来自服务器,因此请注意 jqgrid 功能以去除 html 标签。在 Oleg 的链接中,他使用 jqgrid.htmlEncode 来转义标签。

希望这对其他人有帮助。

于 2013-03-27T10:18:53.680 回答