简体   繁体   中英

How to get the selected value from Kendo UI grid

I am using Kendo grid. I want to get the value(field-nlv_id) for the multiple row selected if select the rows. Also i want to get the number of selected rows and pass to the controller. Let me know the way to do it.

columns : [
            {
              'field' : 'nlv_id',
              'title' : 'Asset ID' 
            },
            {
              'field' : 'due_date',
              'title' : 'Partner Due Date'
             },
            {
              'field' : 'link',
              'title' : 'Partner'
            },
            {
              'field' : 'playlist_type',
              'title' : 'Playlist Style'
            },
            {
              'field' : 'show_code',
              'title' : 'Show Code'
            },
            {
               'field' : 'status',
               'title' : 'Status'
           },
           {
             'field' : 'retry_count',
             'title' : '# Retries'
           }
          ],

            scrollable : false,

            pageable : {
                pageSizes : [ 10, 25, 50 ],
                buttonCount : 5,
                refresh : true,
                messages : {
                  display : "{0} - {1} of {2} assets",
                  itemsPerPage : "assets per page",
                  empty : "No assets to display"
                }
              },

            dataSource : new kendo.data.DataSource({
                serverPaging : true,
                transport : {
                    read : getJobs
                },
                pageSize : 10, 
                schema : {
                    total : returnTotalCount
                }
            }),

            selectable : 'multiple',
            sortable : true
      };    

You will need to do an change() event on grid, then you will have selected items, for convinience i did an example using an list with all selected items, so you can easily get numbers of rows selected.

 change: function (e, args) {

        var currentSelected = this.select();

                var dataSource = $grid.dataSource.data();
                currentItems = [];
                $.map(currentSelected, function (item) {
                    currentItems.push($grid.dataItem(item).nlv_id) ;
                    return $grid.dataItem(item).nlv_id;
                });
              alert(currentItems);


          },

You can get count like that

currentItems.length;

EDIT: For convinience i create an example to do, is easier.

Important: you must set you 'nlv_id' in Schema! http://jsfiddle.net/2ojwwpLf/

hope this help

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM