如何防止在KendoUI多选中删除项目?

时间:2015-04-14 08:30:24

标签: kendo-ui kendo-asp.net-mvc kendo-multiselect

我在MVC中使用了一个Kendo.UI MultiSelect

                @(Html.Kendo().MultiSelect()
                            .Name("ADGroups")
                            .DataTextField("Name")
                            .DataValueField("Value")
                            .MinLength(3)
                            .Value(Model.SelectedADGroups)
                            .HtmlAttributes(new { style = "width:auto", id="ADGroupsList" })
                            .Filter(FilterType.Contains)
                            .DataSource(source => source.Read(read => read.Action("GetADGroups", "Edit"))
                            .ServerFiltering(true))
                            .Events(e => e.Change("onChange").DataBound("onDataBound"))
                             )

现在我想阻止删除一些项目。 所以我将当前值保存在DataBound-Event

    function saveCurrent(multi)
{
    multi._savedValues = multi.value().slice(0);
    multi._savedItems = multi._dataItems.slice(0);
}

function onDataBound()
{
    saveCurrent(this);
}

OnChange我检测到之前和之后的差异。

 function onChange()
{      
    var previous = this._savedValues;
    var current = this.value();
    if (current.length < previous.length)
    {
        var diff = $(previous).not(current).get(0);

            if (confirm('Sure?'))
            {
                // do nothing value already deleted
            }
            else
            {
                // reset
                this.value(previous);
            }

    }
    saveCurrent(this);
}

这完美无缺。但是,如果我键入一个新短语,以便小部件调用读取操作添加一些项目一切正常,现在我删除一个项目并取消此操作,但项目将被删除。 有什么问题?

0 个答案:

没有答案