我在我的kendo網格中有一個外鍵,並且我爲這個外鍵創建了一個編輯器。它工作正常保存,但問題是,當網格顯示數據時,外鍵值是未定義的。我知道我必須更改模板以顯示正確的值。我添加了功能intemplate
以顯示正確的值,但它不適用於我。Kendo Grid外鍵模板
你能幫助我嗎?這裏是我的代碼:
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
值不確定。
你有沒有嘗試在EditorTemplates打造 「GridForeignKey」? –
不,有用的鏈接? – Besher