2016-02-01 4 views
0

Я хочу скрыть кнопку удаления в некоторых строках с определенными условиями. Я проверил следующую ссылку, но она все еще не работает.Kendo grid hide delete button

http://www.telerik.com/forums/hide-edit-and-delete-button-based-on-the-status-of-each-record

Их следующий код:

function onEdit() { 
    $(".k-grid-cancel").on("click", function() { 
    setTimeout(function() { 
     console.log("trigger"); 
     $("#Grid").data("kendoGrid").trigger("dataBound"); 
    }); 
    }) 
} 

Проблема заключается в том, когда вы изменили какие-либо элементы в всплывающем окне редактирования, кнопка удаления будет отображаться на оригинальной серой из области. Хотя вы нажмете кнопку отмены, она исчезнет. Но если вы нажмете правый угол [x], чтобы закрыть окно редактирования всплывающих окон, кнопка удаления останется там.

Любое тело знает, есть ли новое обновление для условной кнопки сетки кендо?

Благодаря

+0

Я добавил событие закрытия окна кендо, чтобы вызвать также DataBound. Теперь ОК закрыть окно. Но кнопка удаления в середине редактирования действительно раздражает. – user3191850

ответ

1

Сначала нужно добавить событие в сетке, как

.Events(ev => 
{ 
     ev.Cancel("onEditCancel"); 
}) 

А потом на JS

function onEditCancel(e) { 
    e.sender.cancelChanges(); 
    e.preventDefault(); 
} 

Он будет работать.

0

Вы можете выполнить это требование, используя OnDataBinding событие KendoGrid.

function onChange(arg) { 
        var selected = $.map(this.select(), function(item) { 
         return $(item).text(); 
        }); 

        console.log("Selected: " + selected.length + " item(s), [" + selected.join(", ") + "]"); 
       } 

       function onDataBound(arg) { 
        console.log(arg); 
        console.log("Grid data bound"); 
       } 

       function onDataBinding(arg) { 
        console.log(arg); 
        console.log("Grid data binding"); 
       } 

       $(document).ready(function() { 
        $("#grid").kendoGrid({ 
         dataSource: { 
          transport: { 
           read: { 
            url: "//demos.telerik.com/kendo-ui/service/Products", 
            dataType: "jsonp" 
           } 
          }, 
          pageSize: 20 
         }, 
         height: 350, 
         change: onChange, 
         dataBound: onDataBound, 
         dataBinding: onDataBinding, 
         selectable: "multiple cell", 
         pageable: true, 
         sortable: true, 
         columns: [ 
          { 
           field: "ProductName", 
           title: "Product Name" 
          }, 
          { 
           field: "UnitPrice", 
           title: "Unit Price", 
           format: "{0:c}" 
          }, 
          { 
           field: "UnitsInStock", 
           title: "Units In Stock" 
          } 
         ] 
        }); 
       }); 

Проверить ссылку http://jsfiddle.net/HuTpj/68/ и увидеть консоль для событий запуска при загрузке сетки.

+0

Не работает. Это похоже на начало привязки, а не на середину редактирования. Я пытался использовать событие .change, но он тоже не работает. – user3191850