gpt4 book ai didi

javascript - 网格中的 Kendo DropDownList 在选择后才绑定(bind)

转载 作者:行者123 更新时间:2023-11-28 18:19:01 26 4
gpt4 key购买 nike

我有一个可编辑的 Kendo 网格,其中有一个下拉列表字段。我有一个需要在该列中使用的 U_UserIdU_Name 字段。名称显然会显示,而 ID 应该是用于绑定(bind)的。我已在下面的示例中删除了数据源 URL,但 DropDownList 数据显示得很好,并带有名称和 ID 值列表。

我已经研究这个有一段时间了,所以我可能错过了一些明显的东西。我遇到了与 this question 相同的问题(下拉列表不会绑定(bind)到该行中显示的用户,直到我单击下拉列表将其展开),但我认为我的模型和字段是正确的,所以我不确定为什么我仍然无法将下拉列表正确绑定(bind)。

这是我的网格和编辑器的 JS:

$(document).ready(function () {
var grid = $("#grid").kendoGrid({
dataSource: {
type: "json-ajax",
transport: {
read: {
url: myUrl,
type: "GET"
}
},
batch: true,
pageSize: 20,
schema: {
data: "Data",
total: "Total",
model: {
id: "OrderId",
fields: {
O_OrderNumber: {
editable: false
},
O_Date: {
editable: false, type: "date"
},
O_InvoiceNumber: {
editable: false
},
O_Status: {
editable: false
},
O_DueDate: {
editable: false, type: "date"
},
U_UserId: {
editable: true
},
U_Name: {
editable: false
},
O_VendorId: {
editable: false
},
O_TrackingNumber: {
editable: false
}
}
}
},
},
scrollable: false,
editable: true,
pageable: true,
columns: [
{
field: "O_OrderNumber",
title: "Order #",
hidden: false
},
{
field: "O_Date",
title: "Pull Date",
hidden: false,
type: "date",
format: "{0:MM/dd/yyyy}"
},
{
field: "O_InvoiceNumber",
title: "Invoice #",
hidden: false
},
{
field: "O_Status",
title: "Status",
hidden: false
},
{
field: "O_DueDate",
title: "Due Date",
hidden: false,
type: "date",
format: "{0:MM/dd/yyyy}"
},
{
field: "U_UserId",
title: "Owner",
hidden: false,
width: 130,
editor: ownerDropDownEditor,
template: "#=U_Name#"
},
{
field: "O_VendorId",
title: "Vendor",
hidden: false
},
{
field: "O_TrackingNumber",
title: "Tracking #",
hidden: false
}
]
}).data("kendoGrid");
});

function ownerDropDownEditor(container, options) {
$('<input required name="' + options.field + '" />')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "Name",
dataValueField: "UserId",
dataSource: {
type: "json",
transport: {
read: {
url: myOtherUrl,
type: "GET"
}
}
}
});
}

编辑:出于好奇,我尝试更改下拉列表,使 DataTextField 和 DataValueField 均为 UserId,并且立即做出选择,但显示了 ID (int) 值而不是名称(字符串)。

最佳答案

因此,进一步调查我上面的编辑,我发现 this Telerik post ,这听起来像是下拉列表实际上是通过对象绑定(bind)的,而不是通过下拉值绑定(bind)的。可以添加一个 data-value-primitive 属性,以便按值绑定(bind)。我更新了编辑器,它现在的行为符合预期:

function ownerDropDownEditor(container, options) {
$('<input required name="' + options.field + '" data-value-primitive="true" />')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "Name",
dataValueField: "UserId",
dataSource: {
type: "json",
transport: {
read: {
url: myOtherUrl,
type: "GET"
}
}
}
});
}

关于javascript - 网格中的 Kendo DropDownList 在选择后才绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com