我使用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。 有关如何通过另一个更改功能显示或隐藏一个下拉列表的任何帮助?谢谢
答案 0 :(得分:0)
在supplierDropDownEditor中, 找到TR(行)选中。
var tr = $("#grid").data("kendoGrid").dataItem($(container[0]).closest("tr"))
找到tr.roleName值。
根据roleName创建不同的dataSources(只需输入if-else块并添加不同的ajax调用),绑定所需的数据源。
如果您需要进一步澄清,请告诉我。