Как избежать дубликатов в сетке кендо - PullRequest
0 голосов
/ 04 мая 2018

Это моя кодировка:

columns.Bound(c => c.Id).Hidden();
columns.Bound(c => c.Name);
columns.Bound(c => c.IsActive).Title("Active Status").ClientTemplate("<input type='checkbox' name='active' ${ IsActive == true ? checked='checked' : ''} enabled value='#= IsActive#' />");

Event:

.Events(events => events.RequestEnd("OnRequestEnd").Change("index"))
.Create(create => create.Action("Create", "Create"))
.Read(read => read.Action("Read", "Read"))
.Update(update => update.Action("Update", "Update"))

Функция для проверки повторяющихся значений:

function index(dataItem) {

    var grid = $("#grid").data("kendoGrid");
    var gridData = grid._data;
    console.log("gridData>>", gridData);
    console.log("dataItem>>", dataItem);

    if (grid.dataItem(grid.select()) != null || grid.dataItem(grid.select()) != undefined) {
        selectedItem = grid.dataItem(grid.select());
        console.log("selectedItem>>", selectedItem.ProviderTypeName);

        for (item in gridData) {
            console.log("grid[item].ProviderTypeName>>", gridData[item].ProviderTypeName);
            console.log("selectedItem", selectedItem.ProviderTypeName);
            if (gridData[item].ProviderTypeName == selectedItem.ProviderTypeName && gridData[item].Id != selectedItem.Id) {
                //e.preventDefault();
                grid.bind("dataBinding", function (e) { e.preventDefault(); });
                grid.unbind("dataBinding");
                grid.refresh();
                alert("Duplicates not allowed");
                return false;
            }
        }
    }
    return true;
}

Это моя кодировка. Я хочу запретить ввод повторяющихся значений в сетке кендо. Может ли кто-нибудь позволить мне, что я делаю, правильно, или я должен сделать что-то еще. Я хочу остановить повторяющиеся значения как при создании, так и при обновлении даже в моей сетке кендо.

1 Ответ

0 голосов
/ 04 мая 2018

Среда вопроса должна быть дополнительно детализирована путем добавления кода, который является моделью сетки (класс структуры сущности), и дизайна таблиц (оператор CREATE TABLE).

Предотвращение дубликатов чаще всего реализуется как функция на стороне сервера в виде ограничений таблицы в базе данных. Похоже, вы хотите предотвратить ввод дубликата Name.

В зависимости от того, как было создано приложение (сначала кодируйте / сначала данные), у вас может быть

Поле класса модели с уникальной аннотацией

[Index("Unique_Name", 1, IsUnique = true)]
public string Name { get; set; }

или ограничение таблицы

[name] VARCHAR (40)  NOT NULL,
CONSTRAINT [unique_name] UNIQUE NONCLUSTERED ([name] ASC)
...