Я реализую kendomultiselect в моем веб-приложении.в множественном выборе есть опция,
, если мы введем новый текст элемента в множественном выборе, он обновит источник данных и базу данных.это работает нормально.см. мой код ниже.
function fnLoadDocumentTags() {
var newTagItem = "";
function onTagDataBound() {
if ((newTagItem || this._prev) && newTagItem !== this._prev) {
var ds = this.dataSource,
datas = ds.data(),
lastItem = datas[datas.length - 1];
newTagItem = this._prev;
if (/\(Add New\)$/i.test(lastItem.TagName)) {
ds.remove(lastItem);
}
var newEntryFound = _.findWhere(datas, { TagName: newTagItem }) != null;
if (newTagItem.length > 0 && !newEntryFound) {
ds.add({
TagName: newTagItem + " (Add New)", TagID: newTagItem
});
this.open();
}
}
}
function onTagSelect(e) {
debugger;
var dataItem = this.dataSource.view()[e.item.index()],
datas = this.dataSource.data(),
lastData = datas[datas.length - 1];
if (parseInt(dataItem.TagID) > 0) {
//////this.dataSource.remove(lastData);
}
else {
if (newTagItem.length > 0) {
var tagID = fnInsertDocumentTags(newTagItem);
dataItem.TagName = dataItem.TagName.replace(" (Add New)", "");
dataItem.TagID = tagID;
}
}
////$.each(datas, function (index, value) {
//// debugger;
//// if (datas[index].TagID == 0) {
//// var dummyItem = datas[index];
//// this.dataSource.remove(dummyItem);
//// return;
//// }
////});
}
function onTagClose(e) {
fnTagsChangeSelect();
}
var data = new kendo.data.DataSource({
batch: true,
transport: {
read: {
url: urljsonGetDocumentTags,
dataType: "json"
},
},
schema: {
model: {
id: "TagID",
fields: {
TagID: {
type: "number"
},
TagName: { type: "string" }
}
}
}
});
$("#Tags").kendoMultiSelect({
animation: false,
dataTextField: "TagName",
dataValueField: "TagID",
dataSource: data,
dataBound: onTagDataBound,
select: onTagSelect,
close: onTagClose
});
}
Но в то же время я сталкиваюсь с такой проблемой, как, когда я набираю текст в множественном выборе, текст накладывается на выбранные элементы в множественном выборе.пожалуйста, смотрите изображение ниже.
Было бы хорошо, если бы у кого-нибудь было предложение ...