我不知道怎么称呼这个,所以欢迎任何更改标题的建议。
我正在尝试将一个非常大的文本转换为“只显示一些字符......”。 显然,大文本以相同的字符串开头,但它更长。
我的网格是只读的,当用户点击每一行时,我会将整个数据显示在一个对话框中。 输入字段(在另一页中)是一个文本区域,因此用户可以记下要在网格中显示的大量数据。我想保持每一行的高度相同。 另外我知道我必须清理文本以避免特殊字符和新行
我想它应该是一个colModel选项来做到这一点,但我找不到它。 这样的事情:
colModel :[
{name:'notes', index:'notes', maxcharlength: 20},
非常感谢。
答案 0 :(得分:1)
您可以创建一个CSS类,它将剪切文本并显示省略号,并使用classes
属性将其指定给列。 CSS类看起来像这样:
.ellipsis {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
然后将其分配给列,如下所示:
colModel :[
{name:'notes', index:'notes', maxcharlength: 20, classes: 'ellipsis'},
答案 1 :(得分: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>';
}
}
]
Notes来自服务器为html所以请注意jqgrid函数来剥离html标签。 在Oleg的链接中,他使用jqgrid.htmlEncode来转义标签。
希望这有助于他人。