JQGrid DynamicLink不起作用

时间:2014-12-01 10:19:32

标签: javascript jquery jqgrid

我正在尝试将可点击的文本添加到JQGrid中的列,因此我将dynamicLink formatter添加到列中,一旦我使用此formatter属性,文本就会消失。使用“链接”属性时,列的数据可见。最初我还没有添加dynamicLink.js jqgrid插件。但即使在添加依赖项之后,问题仍未得到解决。这是我的代码。

<script type="text/javascript" src="<%=request.getContextPath()%>/resources/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/resources/js/jQuery.jqGrid.dynamicLink.js" ></script>

    jq(function() {
        jq("#grid").jqGrid(
                {
                    url : '/application/getList',
                    datatype : 'json',
                    mtype : 'GET',
                    colNames : [ 'Column1',  'Column3' ],
                    colModel : [ {
                        name : 'Column1',
                        index : 'Column1',
                        width : 49,
                        sortable : true,
                        sorttype : 'int'
                    },  {
                        name : 'Column3',
                        index : 'Column3',
                        width : 49,
                        sortable : false,
                        search : false,
                        formatter: 'dynamicLink',
                           formatoptions: {
                               url: function (cellValue, rowId, rowData) {                    
                                 return 'application/disable'  + '?' + $.param({column1: rowData.column1});

                               }
                           }
                    } ],
                    postData : {},
                    rowNum : 10,
                    rowList : [ 5, 10, 15, 20 ],
                    height : 200,
                    autowidth : true,
                    rownumbers : false,
                    pager : '#pager',
                    sortname : 'id',
                    caption : "XXXXXXXXXXXXXX",
                    viewrecords : true,
                    ignoreCase : true,
                    sortorder : "asc",
                    emptyrecords : "Empty records",
                    loadonce : true,
                    loadComplete : function() {
                    },
                    jsonReader : {
                        total : "total",
                        page : "page",
                        records : "records",
                        root : "XXXXXX",
                        repeatitems : false,
                        cell : "cell",
                        id : "id"
                    }
                });
        jq("#grid").jqGrid('navGrid', '#pager', {
            edit : false,
            add : false,
            del : false,
            search : true
        }, {}, {}, {}, {
            sopt : [ 'cn', 'ne', 'lt', 'gt', 'eq', 'bw', 'ew' ],
            closeOnEscape : true,
            multipleSearch : false,
            closeAfterSearch : true
        });

        jq("#btnFilter").click(function() {
            jq("#grid").jqGrid('searchGrid', {
                multipleSearch : false,
                sopt : [ 'cn', 'ne', 'lt', 'gt', 'eq', 'bw', 'ew' ]
            });
        });

    });
</script>

一旦我添加了dynamicLink.js,我在浏览器控制台中收到错误消息,$ .fn.fmatter无法解析,因为dynamicLink函数定义使用$ .fn.fmatter。

我是否遗漏了导致此问题的任何其他依赖项或任何版本不匹配?

编辑1:

更新问题

从url传递的Column1的cellValue是一个布尔值,因此

  

if($ .fmatter.isString(cellValue)|| $ .fmatter.isNumber(cellValue))

jqgrid.dynamicLink.js中的

传递失败,并且只从该函数返回了一个&amp; nbsp值。

我在Spring MVC中使用这个代码,它与几个jar一起处理json交换和jpa-hibernate。

我应该用问题发布服务器端代码,这会使错误显而易见。

现在,我想知道使用dynamicLink处理布尔列需要做些什么。

0 个答案:

没有答案