How to select??

3 posts, 1 answers
  1. Phil
    Phil avatar
    4 posts
    Member since:
    Dec 2011

    Posted 26 Feb 2013 Link to this post

    The kendo listview documentation says that you can pass in a selector or an array.  An array of what?

    I have a complex kendo grid that is using inline custom editors based on information in the row.  This all works great, EXCEPT for the listview I'm adding.

    Given something like this (I'm using underscore js by the way), how do I select the list items using javascript?

    function createListViewEditor(container, options) {
            var list = _.find(_viewModel.model.LookupListCollection, function(x) {
                return (x.Id == options.model.StagingControlStageAttributeLookupCollectionId);
            });
     
            var listItems = [];
     
            _.forEach(list.LookupValues, function(x) {
                listItems.push({ text: x.CustomName, value: x.Id });
            });
     
            var lvSource = new kendo.data.DataSource({
                data: listItems
            });
     
            var listView = $('<div />')
                .appendTo(container)
                .kendoListView({
                    dataSource: lvSource,
                    selectable: "multiple",
                    template: kendo.template($('#multiselecttemplate').html())
                     
                }).data("kendoListView");
     
            var indices = multiListSelectionHelper(listView.dataSource.data(), options.model.AttributeFieldValue.split(','));
     
            listView.select(indices);
     
            listView.bind("change", function(e) {
                var data = e.sender.dataSource.view(),
                    selected = $.map(e.sender.select(), function(item) {
                        return data[$(item).index()].value;
                    });
     
                options.model.AttributeFieldValue = selected.join();
            });
        }
         
        function multiListSelectionHelper(options, current) {
            var items = [];
            _.forEach(options, function (x) {
                _.forEach(current, function(y) {
                    if (x.value == parseInt(y)) {
                        items.push(x);
                    }
                });
            });
     
            return items;
        }
  2. Answer
    Petur Subev
    Admin
    Petur Subev avatar
    1882 posts

    Posted 28 Feb 2013 Link to this post

    Hello Phil,

    Basically the select method accepts either HTML element or array of HTML elements (or jQuery wrapped HTML element i.e. $('#someItem').

    You cannot pass index of an element or the model ID.

    Kind Regards,
    Petur Subev
    the Telerik team
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
  3. Kendo UI is VS 2017 Ready
  4. Phil
    Phil avatar
    4 posts
    Member since:
    Dec 2011

    Posted 28 Feb 2013 Link to this post

    Thanks for the info, the array of $("#someitem) worked perfect.
Back to Top