jqgrid转换文本

时间:2013-03-26 16:49:49

标签: javascript jquery jqgrid

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

我正在尝试将一个非常大的文本转换为“只显示一些字符......”。 显然,大文本以相同的字符串开头,但它更长。

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

我想它应该是一个colModel选项来做到这一点,但我找不到它。 这样的事情:

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

非常感谢。

2 个答案:

答案 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来转义标签。

希望这有助于他人。