kendo-asp.net-mvckendo-dropdownkendo-multiselect

asp kendo multiselect manualy select items by jquery


in my form there are asp kendo multiselect ; I want select some items from multiselect per selected value from a asp kendo dropdownlist? how can I do this ?

    @(Html.Kendo().DropDownList()
        .Name("dropdown")
        .Filter("contains")
        .DataTextField("Name")
        .DataValueField("Id")
        .DataSource(source =>
        {
            source.Read(read =>
            {
            read.Action("action", "controller" });
            });
        })
        .AutoBind(true)            
    )

@(Html.Kendo().MultiSelect()
    .Name("multiselect")
    .Filter("contains")
    .HtmlAttributes(new { style = "width:100%" })
    .DataTextField("Name")
    .DataValueField("Id")
    .Filter("contains").Animation(false)
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("action", "controller" });
        });
    })

)


Solution

  • i solved this problem; first define a function for dropdown_change and in that function get selected value from dropdown and load data by jquery ajax then select items from multiselect :)

    $(document).ready(function () {
            $('#dropdownName').data("kendoDropDownList").bind("change", drp_change);
        });
        function drp_change() {
            var selected = $('#dropdownName').val();
            if (selected > 0) {
                //fill multiselect per selected value
                var params= { [paramName]: selected };
                $.get('/controller/action', params, function (data) {        
                    var multiSelect = $("#multiselectName").data("kendoMultiSelect");
                    var selected = $.map(data, function (item) {
                        return item;
                    });
                    multiSelect.value(selected);
                    multiSelect.trigger("change");
                })
            } else {
                $('#multiselectContailner').hide();
            }
        }