2013-12-26 3 views
1

I, работая с MVC + kendoui сетки, и это мой код:kendoui сетки выбрать все


модель


 public class User 
     { 
     [StringLength(9)]  
     public int UserId { get; set; } 

     [StringLength(50)]   
     public string UserName { get; set; } 

     public bool IsSelected { get; set; } 
} 

cshtml

@model IEnumerable<PoliciesHaglasha.Models.User> 

@{  
    Layout = null; 
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
    var users = MvcHtmlString.Create(serializer.Serialize(Model)); 
} 

     JsonUsers = @users; 

     var UsersSource = new kendo.data.DataSource({ 
      pageSize: 5, 
      data: JsonUsers,    
      autoSync: true, 
      schema: { 
       model: { 
        id: "UserId", 
        fields: { 
         UserId: { type: "number" ,editable: false, nullable: false },      
         UserName: { type: "string" , editable: false, nullable: false }      
        } 
       } 
      } 
     });  
      $("#gridPolisot").kendoGrid({ 
      dataSource: PolisotSource,       
      editable: true, 
      scrollable: false, 
      selectable: "row", 
      sortable: true,    
      reorderable: true,   
      toolbar: [{ name: "save", text: "save" }], 
      columns: [ 
        { field:"IsSelected", title: "<input type='checkbox' id='chkSelectAll'>", width: "34px" ,template: "<input type='checkbox' #= IsSelected ? checked='checked' : '' #/>"},          
        { field:"UserId", title: "User Id", width: "20px", attributes: {"class": "KendoUITD"}}, 
        { field:"UserName",title:"User Name", width: "50px", attributes: {"class": "KendoUITD"}},    
       ],   
      },       
     }); 

Мои вопросы :

1) Как установить флажок «Выбрать все заголовки»?

2) Когда я проверить/снимите флажок будет возвращаться на сервер

Спасибо,

+0

здесь другое решение флажок Выбрать все из заголовка [1] [1]: http://stackoverflow.com/questions/13810258/kendo-grid-how-to- check-all-checkboxes-of-selected-rows – Nauman

ответ

7

1) Вы должны использовать опцию headerTemplate конфигурации в сетки:

headerTemplate: "<input type='checkbox' id='chkSelectAll' onclick='checkAll(this)'/>" 

Затем добавьте функцию «checkAll» на страницу:

function checkAll(ele) { 
    var state = $(ele).is(':checked'); 
    var grid = $('#gridPolisot').data('kendoGrid'); 
    $.each(grid.dataSource.view(), function() { 
     if (this['IsSelected'] != state) 
      this.dirty=true; 
     this['IsSelected'] = state; 
    }); 
    grid.refresh(); 
} 

2) Я не уверен, что я правильно понял, что именно вы пытаетесь достичь, однако, если вам нужно синхронизировать изменения с вышеупомянутой функции с сервером, то вы можете также вызвать сеткуsaveChanges method ,

+1

Спасибо, Владимир, Ваш первый пример отлично работает. И о моем втором вопросе: мне нужно обновить свойство dataSource «IsSelected» в соответствии с пользователем. Установите/снимите флажок, как это сделать? Спасибо – Aviv

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