jqgrid - 将值传递给 jqGrid 自定义函数以验证重复行

标签 jqgrid

我在使用 Razor 的 ASP.NET MVC 中有一个 jqGrid 函数,如下所示

$(function () {
    $("#grid").jqGrid({
        url: "/Common/GetCategoryList",
        editurl: '/Common/CategoryEdit',
        datatype: 'json',
        mtype: 'Get',
        colNames: ['Id', 'Name', 'Created On', 'Status'],
        colModel: [
            { key: true, name: 'id', editable: false, formatter: 'integer', viewable: false, hidden: true },
            {
                key: false,
                name: 'name',
                editable: true,
                editrules: { custom: true, custom_func: checkforduplicates, required:true }

            }, 

然后我有一个自定义函数来检查上面网格中的重复名称

function checkforduplicates(value, colname) {
    var grid = $("#grid");

    var textsLength = grid.jqGrid("getGridParam", "data"),myName = $.map(textsLength, function (item) { return item.name });
    alert("textsLength is " + textsLength);
    alert(JSON.stringify(myName));
    var textsLength2 = JSON.stringify(textsLength);
    alert("textsLength 2 is " + textsLength2);


    var myAttrib = $.map(textsLength,
        function (item) { return item.name });
    alert("myAttrib is " + myAttrib);

    var count = 0;
    for (var k in textsLength) {
        if (textsLength.hasOwnProperty(k)) {
            ++count;
        }
    }

    var text, i;
    alert("value of count is " + count);

    for (i = 0; i < count; i++) {
        text = myAttrib[i];
        if (value === text) {
            return [false, " - Duplicate category name."];
        }
    }
    return [true, ""];
}

以上所有警报都返回空值。因此,即使有超过 20 行,该函数也不会从网格获取值,并且我输入了重复值并单击“提交”。

编辑:- 当我使用 grid.jqGrid("getGridParam", "data") 时,数据类型为“local”而不是“json”,数组返回值

最佳答案

引用JQGrid Doc 。我能理解

grid.jqGrid("getGridParam", "data")

将始终返回空数组。尝试按如下方式更改代码

grid.jqGrid("getGridParam", "colModel")

希望这对你有帮助

关于jqgrid - 将值传递给 jqGrid 自定义函数以验证重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37808232/

相关文章:

javascript - jqGrid发送编辑/删除内联信息序列化JSON格式

javascript - jqGrid - Safari Mobile 上缺少滚动条

jquery - 如何在免费的 jqgrid 内联和表单编辑中使元素大小填充单元格大小并增加字体

javascript - 重新加载 jqGrid 后,“Click”事件未触发

jquery - jqGrid 与 AngularJS

jqgrid - 如何在jqgrid中限制行的最大高度

jqgrid - 在客户端以编程方式过滤 jqGrid?

c# - 向 EF 实体添加非关系属性(连接操作)

javascript - 如何在 jqgrid 或其他方式中以编辑形式显示只读字段以显示只读列中的整个文本

javascript - 如何在免费 jqgrid 中单击复选框列开始内联编辑