0

我想将内容包装在 jqGrid 中,格式如下

Input string
2013/05/28 10:54 - Default - Subject A Task added

Output String 
2013/05/28 10:54 - Default 
Subject A Task added

下面是我给出要在屏幕上显示的内容的代码

jQuery("#message").jqGrid({
    datatype : "local",
    data : resultSet,
    height :250,
    width : 960,
    sortable : false,
    ignoreCase : true,
    sortorder : "desc",
    colNames : [''], 
    colModel : [ {
        name : 'content',
        index : 'content',
        width : '10%',
        align : 'center',   
        sortable : false,
        search : false
    }],
    rowList:[10,20,30],
    pager : '#pager',
    rowNum : 10,
    altRows : true,
    altclass:"myclass",
    viewrecords : true,

});

我试过nltobr这样

loadComplete : function() {
    for (var i = 0; i < resultSet.length; i++) {
        resultSet[i].messageContent = nl2br(resultSet[i].messageContent);
    }
}

那是行不通的。

有没有办法根据第二个hipen进行包装?我也想加粗第一行。

4

1 回答 1

3

首先nltobr可以在服务器代码中使用,而不是在 JavaScript 内部的回调方法loadComplete将在填充网格后执行。将网格内容放置在网格中loadComplete,将调用回调秒数。如果您想对数据进行一些修改,您应该在创建包含数据的网格之前执行此操作。resultSet

您写了有关内容换行的文章,但是nltobr您发布的文本示例的用法和示例表明您在文本中只有换行符\n。它是

该演示使用您发布并包含\n在文本内部的文本。结果看起来像你想要的

在此处输入图像描述

如果您确实需要对文本进行换行,那么我建议您阅读以下答案:this onethis onethis one

更新:如果您需要将某些列的多行内容的第一行加粗,您可以<strong>在文本中插入。如果您不使用jqGrid 选项,那么您可以在创建 jqGrid之前autoencode: true修改输入数据。例如演示修改列的内容:note

var i, str, a;

for (i = 0; i < mydata.length; i++) {
    str = mydata[i].note;
    if (typeof str === "string") {
        a = str.split("\n");
        if (a.length > 1) {
            a[0] = "<strong>" + a[0] + "</strong>";
            mydata[i].note = a.join("\n");
        }
    }
}

另一个演示演示了如何使用自定义格式化程序来做同样的事情。如果您使用autoencode: truejqGrid 的选项,您应该使用该方法。列的格式化程序note在演示中定义为

formatter: function (value) {
    var a;
    if (value == null || value === "") {
        return "&#160;";
    } else if (typeof value === "string") {
        a = value.split("\n");
        if (a.length > 1) {
            a[0] = "<strong>" + a[0] + "</strong>";
            return a.join("\n");
        } else {
            return $.jgrid.htmlEncode(value);
        }
    } else {
        return $.jgrid.htmlEncode(value);
    }
}
于 2013-05-28T08:51:06.683 回答