【问题标题】:jqGrid change formatter of cell when cell has no value当单元格没有值时,jqGrid更改单元格的格式化程序
【发布时间】:2013-06-17 14:04:30
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您在“当单元格没有 IDNumber 值时”是什么意思?值是空字符串、未定义还是其他一些输入数据?您能否包括您所指的确切数据?
  • 我的意思是当它是空字符串时

标签: jqgrid jqgrid-formatter


【解决方案1】:

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

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

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

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

The demo 展示了如何使用它。专栏

{ 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。格式化程序的源代码你可以找到here。演示显示网格

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

【讨论】:

    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多