2015-06-11 3 views
0
<%: Html.Kendo().Grid<Model>() 
     .Name("Grid") 
     .BindTo((IEnumerable<Model>)ViewBag.List) 
     .Columns(columns => 
     { 
      columns.Bound(p => p.PK).Title("pk"); 
      columns.Bound(p => p.NAME).Title("Name"); 


      columns.Command(command => command.Custom("Delete").Click("Delete")).Width(100); 

     }) 

     %>  


<div id="modalWindow"> 
      <h2>Delete?</h2> 
      <button id="yes" class="k-button">Yes</button> 
      <button id="no" class="k-button">No</button> 
     </div> 


     <script>    

      var wnd; 
      $(document).ready(function() { 
       wnd = $("#modalWindow").kendoWindow({ 
        title: "Delete confirmation", 
        modal: true, 
        visible: false, 
        resizable: false, 
        width: 300 
       }).data("kendoWindow"); 

      }); 


      function Delete(e) { 
       e.preventDefault(); 

       var grid = this; 
       var row = $(e.currentTarget).closest("tr"); 
       wnd.center().open(); 



       $("#yes").unbind('click').click(function() {  

        $.ajax({       

         type: 'POST', 
         url: '/Home/Delete', 
         data: ??? 
         contentType: 'application/json; charset=utf-8', 


         success: function (result) { 

         }, 
         error: function (err, result) { 
         alert("Error in delete" + err.responseText); 
         } 

        });     

        grid.removeRow(row); 
        wnd.close(); 
       }); 


       $("#no").unbind('click').click(function() { 
        wnd.close(); 
       }); 
      }  
     </script> 

Здравствуйте,PK Кендо Сетка Ряд

Я хочу удалить строку соответствующего обычая кнопку кэндо сетки удалить. Скрипт отлично работает, но у меня проблема с данными. Я не знаю, как получить PK строки, и мне нужно, чтобы удалить запись.

Как я могу получить его при нажатии моей пользовательской кнопки?

С уважением

+0

Пожалуйста показать определение сетки. –

ответ

0

вы знаете, лежащее в основе свойства ИД DataItem СДЕЛАЕТ? Вы можете захватить dataItem из источника данных сетки, как только у вас есть строка. Итак, после var row = $(e.currentTarget).closest('tr'); вы можете добавить var dataItem = grid.dataItem(row); И тогда вы должны будете иметь возможность получить свойство id данныхItem dataItem.id (или некоторых таких);

+0

Я пробовал раньше с похожим кодом, и я могу взять только индекс строки, а не pk. – ArDevTeam

0

Вы должны использовать функцию dataItem для того, чтобы превратить tr элемент в объект данных:

function Delete(e) { 
    e.preventDefault(); 

    var grid = this; 
    var row = $(e.currentTarget).closest("tr"); 
    var obj = grid.dataItem(row); //<--- 
    wnd.center().open(); 

    $("#yes").unbind('click').click(function() {  
     $.ajax({       
      type: 'POST', 
      url: '/Home/Delete', 
      data: obj.PK, //<--- 
      contentType: 'application/json; charset=utf-8', 
      success: function (result) { 
      }, 
      error: function (err, result) { 
      alert("Error in delete" + err.responseText); 
      } 
     });     

     grid.removeRow(row); 
     wnd.close(); 
    }); 

    $("#no").unbind('click').click(function() { 
     wnd.close(); 
    }); 
} 
+0

Спасибо за ваш ответ! Используя ваш код, кнопка перестает работать и не получает PK – ArDevTeam

+0

Что вы подразумеваете под этим? Вы получили сообщение об ошибке в консоли? Добавьте 'debugger' после' var obj = grid.dataItem (tr); 'и проверьте свойства. Возможно, свойство 'PK' находится в нижнем регистре. –

+0

Это ответ консоли: Uncaught ReferenceError: tr не определен – ArDevTeam

Смежные вопросы