编辑时,kendo ui网格排序错误

时间:2013-10-23 14:25:01

标签: kendo-ui kendo-grid

我已将内联编辑和可编辑列显示为下拉列表。当我选择任何项目然后进行排序时,我将[object Object]作为单元格的值。截至目前,我已编写代码将其删除,如下所示。

dataBound: function(e) {
               if(e.sender != null) {
                    var container = e.sender;
                    var rows = container.tbody[0].childNodes;
                    $.each(rows, function (i, val) {
                        var cols = rows[i].childNodes;
                        $.each(cols, function (k, value) {
                            if(cols[k].innerText == "[object Object]")
                                cols[k].innerText = "";
                        });
                    });
                }
            }

有人有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我通过在click事件上调用grid header解决了这个问题,并在其中检查该列是否可排序,如果是,则调用grid的cancelChanges()方法。

$(function () {
            var gr = $('#grid').data().kendoGrid;
            gr.thead.on('click', function (e) {
                if((e.target && e.target.href) || (e.target.cellIndex && gr.columns[e.target.cellIndex].sortable))
                    gr.cancelChanges();
            });
        });

此外,将可排序属性添加到网格中的字段,如下所示,甚至sortable = true是默认值。

columns: [
                            "ProductName",
                            { field: "UnitPrice", title: "Unit Price", sortable:true, format: "{0:c}", width: "100px" },
                            { field: "UnitsInStock", title:"Units In Stock", sortable:true, width: "100px" },
                            { field: "Discontinued", sortable:false, width: "100px" },
                            { command: ["edit", "destroy"], title: " ", sortable:false, width: "172px" }]