1

我有一个 jqGrid,其中一列已将格式化程序设置为下面的超链接

{ name: 'IDNumber', index: 'IDNumber', classes: 'hyperlink',
    search: true, stype: 'text',
    formatter: 'showlink', formatoptions: { baseLinkUrl: '#'} },

当单元格没有IDNumber值时,我想将格式化程序更改为 string 。

我想做的原因是当单元格没有值并且链接作为格式化程序时它不显示网格线

4

1 回答 1

3

格式化程序为每个输入数据showlink生成<a>元素,这些数据是字符串(甚至是空字符串)或数字。

我不确定我是否正确理解您想要的内容。

如果我理解正确,即使单元格包含字符串,您也需要使链接“可点击”。为此,您可以将列中的所有空字符串替换为"&nbsp;&nbsp;&nbsp;".

我可以建议您的另一种选择是使用我在答案中描述的 dynamicLink 格式化程序。它非常简单,但作为预定义的格式化程序更强大showlink

该演示展示了如何使用它。专栏

{ name: "mylink", width: 60, sortable: false,
    formatter: "dynamicLink",
    formatoptions: {
        cellValue: function (cellValue, rowId, rowData, options) {
            return cellValue !== "" ?
                cellValue :
                "<span style='color:red'>empty link</span>";
        },
        url: function (cellValue, rowId, rowData) {
            return '/Store/AddToCart?id=' + rowId + '?' +
                $.param({
                    name: rowData.name
                });
        }
    } }

允许定义自定义单元格值和链接中使用的 URL。您可以在此处找到格式化程序的源代码。演示显示网格

在此处输入图像描述

我放置了一些自定义文本(红色文本“空链接”)而不是空字符串。

于 2013-06-21T13:47:46.250 回答