1

可以看到如何使用以下方法创建 jqGrid 链接:

colModel: [ {name:'myname', 
             formatter:'showlink', 
             formatoptions:{baseLinkUrl:'someurl.php', addParam: '&action=edit'}

这会创建一个请求/someurl.php?id=XX&action=edit,显示文本将是myname.

但在我们的例子中,我们不需要myname文本——我们的显示文本将是硬编码的。我们不想在我们的 JSON 请求中传递任何额外的数据 - 但似乎您需要为每列提供一个 JSON 属性。我们如何在没有 add'l JSON 列的情况下获得链接?

4

1 回答 1

1

'showlink'与所有其他格式化程序一样,格式化程序用于格式化从服务器或本地数据加载到 jqGrid中的数据。因此,在您的示例中,链接中不会有“myname”文本(列名),而是网格中的单元格值

因此,如果您想使用预定义的格式化程序 'showlink',您必须使用要在链接中看到的文本填充列数据。您可以在 JSON 数据中执行此操作,也可以在页面加载后填充/覆盖文本,例如在loadComplete事件句柄中:

loadComplete: function() {
    var grid = $("list");
    var ids = grid.getDataIDs();
    for (var i = 0, idCount = ids.length; i < idCount; i++) {
        grid.setCell(id, 'myname', 'My text for link');
    }
}

您还可以使用自定义格式化程序自定义取消格式化程序,而不是'showlink' 预定义的格式化程序。然后,您可以根据需要定义链接文本,而无需在网格中填充任何数据。

于 2010-09-17T09:59:57.510 回答