Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免剑道格网中的重复_C#_Asp.net Mvc_Kendo Ui_Kendo Grid - Fatal编程技术网

C# 如何避免剑道格网中的重复

C# 如何避免剑道格网中的重复,c#,asp.net-mvc,kendo-ui,kendo-grid,C#,Asp.net Mvc,Kendo Ui,Kendo Grid,这是我的代码: 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=

这是我的代码:

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#' />");
用于检查重复值的函数:

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;
}

这些是我的代码。我想防止在剑道网格中输入重复的值。谁能告诉我我现在做的是正确的,还是应该做些别的。我想在Create和Update中停止重复的值,即使在我的剑道网格中也是如此。

应该通过添加网格模型(实体框架类)和表设计(Create TABLE语句)的代码来进一步详细说明问题的环境

防止重复通常作为服务器端功能以数据库中表约束的形式实现。您似乎希望防止输入重复的
名称

根据应用程序的构建方式(代码优先/数据优先),您可能需要

具有唯一注释的模型类字段

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

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

可以在客户端执行吗?我们如何向用户显示他输入了重复的值。我是说信息?在Telerik论坛上搜索一下可以给你更多的见解。我以前检查过相同的链接。出现警报消息,但发生保存事件。这就是问题所在。另外,e.model.UserName抛出一个无法找到的错误。客户端检查的动机是什么?如果检查没有在服务器端完成,理论上的黑帽参与者可能会创建一个副本(使用绕过网格和ui页面的方法)。
[name] VARCHAR (40)  NOT NULL,
CONSTRAINT [unique_name] UNIQUE NONCLUSTERED ([name] ASC)