多个自定义Kendo编辑器

时间:2017-10-22 23:02:32

标签: jquery html kendo-ui telerik kendo-grid

我使用kendoGid来显示数据,它有(userName,firstName,lastName,email,phoneNumber,roleName,supplierCode)字段。我准确地获取数据,所有CRUD操作都得到了很好的表现。

这是我的网格代码:

       var grid = $("#grid").kendoGrid({
        dataSource: usersDataSource,
        schema: {
            model: {
                id:"$id",
                fields: {
                    userName: { },
                    firstName: {  },
                    lastName: { },
                    email: { },
                    phoneNumber: { },
                    roleName: { },
                    supplierCode: { }
                }
            }
        },
        editable: "popup",
        edit: function (e) {
            $(e.container).find('input[name="prontoCode"]').attr({ "hidden": true });

        },
        columns:
               [     .....Other Fields Definition ... 
                     {
                         field: "roleName",
                         title: "Role Name",
                         editor: rolesDropDownEditor
                     },
                     {
                         field: "prontoCode",
                         title: "Supplier Code",
                         editor: supplierDropDownEditor,
                     }
               ],
    });

正如您在我的列定义中所见,我使用了自定义编辑器(kendoDropDown)和kendo popup编辑属性。 这是rolesDropDownEditor的代码:

      function rolesDropDownEditor(container, options) {
        $('<input required name="' + options.field + '"/>')
            .appendTo(container)
            .kendoDropDownList({
                dataSource: {
                    transport: {
                        read: {
                            url: "URL",
                            type: "get",
                            datatype: "json",
                        }
                    }
                },
                change: function (e) {
                    if (e.val == "Supplier") {
                   $(e.container).find('input[name="prontoCode"]').attr({ "hidden": false });
                    }
                }
            });
    }

rolesDropDown中的值是(admin,Inspector,Engineer&amp; Supplier),当用户从roleDropDown中选择“Supplier”时,我想显示supplierDropDown。 有关如何通过另一个更改功能显示或隐藏一个下拉列表的任何帮助?谢谢

1 个答案:

答案 0 :(得分:0)

在supplierDropDownEditor中, 找到TR(行)选中。

    var tr = $("#grid").data("kendoGrid").dataItem($(container[0]).closest("tr"))

找到tr.roleName值。

根据roleName创建不同的dataSources(只需输入if-else块并添加不同的ajax调用),绑定所需的数据源。

如果您需要进一步澄清,请告诉我。