1

有人知道如何在 Kendo MultiSelect 中添加新项目吗?虽然我已经尝试了很多可以在互联网和论坛上找到的答案。但是,它现在不适合我。当我尝试使用现有代码添加新项目时,只会添加未定义的项目。我想在提交按钮上将新添加的项目发布到控制器。任何人都可以为此提供适当的工作解决方案吗?

看法:

   @(Html.Kendo().MultiSelectFor(model => model.AlternateNames)
                             .HtmlAttributes(new { @style = "width:100%" })
                             .AutoClose(true)
                             .DataTextField("Text")
                             .DataValueField("Value")
                             .BindTo(Model.AlternateNamesList)
                             .Events(e => { e.Change("change").DataBound("dataBound"); })
                     )

JS代码:

function change() {
    var value = this.value().slice(0);
    var dataitems = this.dataSource.data();
    var newtag = "";
    for (var i = 0; i < dataitems.length; i++) {
        var dataItem = dataitems[i];
        if (dataItem.text.substring(0, "Add new tag: ".length) === "Add new tag: ") {
            newtag = dataItem.text.replace("Add new tag: ", "");
            this.dataSource.remove(dataItem);
        }
    }
    if (newtag != "") {
        this.dataSource.add({ text: newtag, value: newtag });
    }
    if (newtag) {
        this.dataSource.filter({});
        if (this.value().length == 1) {
            this.value(newtag);
        }
        else {
            value.push(newtag);
            console.log(value);
            this.value(value);
        }
    }
}
var newitemtext = '';
function dataBound() {
    if ((newitemtext || this._prev) && newitemtext != this._prev) {
        newitemtext = this._prev;
        var dataitems = this.dataSource.data();
        var isfound = false;
        for (var i = 0; i < dataitems.length; i++) {
            var dataItem = dataitems[i];
            if (newitemtext != "" && newitemtext != "undefined") {
                if (dataItem.text == newitemtext) {
                    dataItem.text = newitemtext + "% ";
                    this.refresh();
                    isfound = true;
                }
            }
        }
        if (!isfound) {
            if (newitemtext != "" && newitemtext != "undefined") {
                alert(newitemtext);
                this.dataSource.add({ text: newitemtext + "% ", value: newitemtext + "% " });
                this.refresh();
            }
        }
        this.search();
        this.open();
    }
}
4

0 回答 0