0

我有内联编辑和可编辑列显示为下拉列表的网格。当我选择任何项目然后进行排序时,我得到 [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 = "";
                        });
                    });
                }
            }

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

4

1 回答 1

0

我通过在单击事件上调用网格标题来解决问题,并在其中检查该列是否可排序,如果是,则调用网格的 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" }]
于 2013-10-24T09:21:37.687 回答