gpt4 book ai didi

asp.net-mvc-4 - Kendo 网格外键模板

转载 作者:行者123 更新时间:2023-12-04 00:41:45 28 4
gpt4 key购买 nike

我的剑道网格中有一个外键,我已经为这个外键创建了一个编辑器。它在保存时工作正常,但问题是当网格显示数据时,外键值未定义。我知道我必须更改模板以显示正确的值。我添加了函数 intemplate 来显示正确的值,但它对我不起作用。

你能帮帮我吗?这是我的代码:

var collection;

$("#mygrid").kendoGrid({
dataSource: dataSource,
pageable: true,
toolbar: [{ name: 'create', text: 'My create' }],
columns: [
{ field: "ForeignKeyColumn", editor: categoryDropDownEditor, template: "#=getTextByValue(data)#" },
{ field: "NOTES", title: "Notes" },
{ command: ["edit", "destroy"], title: " ", width: "160px" }],
editable: "popup",
});

//update model when choose value from dropdown list
var grid = $("#mygrid").data("kendoGrid");
grid.bind("save", grid_save);
function grid_save(e) {

if (e.model.ForeignKey) {

//change the model value
e.model.ForeignKeyColumn = 0;
//get the currently selected value from the DDL
var currentlySelectedValue = $(e.container.find("#typeCombo")[0]).data().kendoDropDownList.value();
//set the value to the model
e.model.set('ForeignKeyColumn', currentlySelectedValue);
}
}

//Editor template
function categoryDropDownEditor(container, options) {
$('<input id="typeCombo" required data-text-field="text" data-value-field="value" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: true,
dataSource: {
type: "json",
transport: {
read: {
url: '@Url.Action("SomeAction", "SomeController")',
type: "POST",
contentType: "application/json",
}
}
}
});
}

//Show template
function getTextByValue(data) {
//if the collection is empty - get it from the grid
if (!collection) {
grid = $("#GridName").data("kendoGrid");
valuesCollection = grid.options.columns[1].values;//Set the correct FKColumn index
collection = {};
for (var value in valuesCollection) {
collection[valuesCollection[value].value] = valuesCollection[value].text;
}
}
return collection[data.ForeignKeyColumn];
}

注意:valuesCollection 值在我跟踪时未定义。

最佳答案

试试这个,

我认为在网格中绑定(bind)外键列是必要的。请不要更改 .cshtml View 名称或文件夹名称。

存储在这个位置:

位置:- YourViews -> Shared -> EditorTemplates -> GridForeignKey.cshtml

GridForeignKey.cshtml:

@(Html.Kendo().DropDownListFor(m => m)
.Name(ViewData.TemplateInfo.GetFullHtmlFieldName(""))
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
.OptionLabel("--Not Category--")
)

关于asp.net-mvc-4 - Kendo 网格外键模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944004/

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