gpt4 book ai didi

javascript - Angularjs Kendo 主从网格应用主从的默认 ID 以添加新的详细记录

转载 作者:行者123 更新时间:2023-12-03 04:05:10 26 4
gpt4 key购买 nike

我试图从主网格扩展行的 ID 字段中获取值,以便在详细信息网格中添加新记录时填充详细信息网格上的相应字段。我尝试了以下方法:

$scope.detailGridOptions = function (dataItem) {
return {
dataSource: {
type: 'aspnetmvc-ajax',
transport: {
read: "/Home/GetTaggedContractorsByMajor"
,
create: "/Home/AddContractorToTag"
},
serverPaging: true,
serverSorting: true,
serverFiltering: true,
schema: {
data: "Data",
total: "Total",
model: {
id: "ContractorID",
fields: {
CompanyID: { editable: true, nullable: true, type: "string" },
TagID: { editable: true, nullable: true, type: "number" },
vchCompanyName: { editable: false, nullable: false, type: "string"},
Date: { editable: false, nullable: false, type: "date" },
AddedBy: { editable: false, nullable: false, type: "string" }
}
}
},
pageSize: 5,
filter: { field: "TagID", operator: "eq", value: dataItem.TagID }
},
scrollable: false,
sortable: true,
pageable: true,
editable: "popup",
edit: function (e) {
var uid = $(this.element[0]).closest('.k-detail-row').prev().attr('data-uid');
var selector = kendo.format("tr[data-uid='{0}']", uid);
var currentGridElement = $(selector).closest("[data-role=grid]");
var parentRow = currentGridElement.closest(".k-detail-row").prev();
var parentGrid = parentRow.closest("[data-role=grid]").data("kendoGrid");
var parentModel = parentGrid.dataItem(parentRow);
return {
TagID: parentModel.TagID
};
},
toolbar: ["create"],
columns: [
{
field: "TagID"
, hidden: true
}
,
{
field: "CompanyID",
title: "CompanyID"
, editor: companyDropDownEditor
}
,
{
field: "vchCompanyName",
title: "Company Name"
}
,
{
field: "Date",
title: "Date Added"
}
,
{
field: "AddedBy",
title: "Added By"
}
]

};

};

“parentGrid”变量始终为空。但是,如果直接使用网格名称作为 $scope.tagsGrid,我可以获得网格,但行 varparentModel = $scope.tagsGrid.dataItem(parentRow); 给出错误“无法获取未定义或空引用的属性‘TagID’”。我认为即使我能够使这部分代码正常工作,我仍然缺少一些东西,因为尝试像这样手动设置 ID

          return {
TagID: 1
};

也不设置ID。如果无法自动设置新详细信息行的 ID 字段,是否可以从 Master 获取 ID 值并将其作为参数通过我的创建 Url 发送?

非常感谢任何帮助!

最佳答案

我可以通过对编辑事件功能进行一些调整来使其正常工作:

edit: function (e) {
var grid = $scope.tagsGrid;
var uid = e.model.uid;
var selector = kendo.format("tr[data-uid='{0}']", uid);
var currentGridElement = $(selector).closest("[data-role=grid]");
var parentRow = currentGridElement.closest(".k-detail-row").prev();
var parentModel = grid.dataItem(parentRow);
e.model.TagID = parentModel.TagID;
},

关于javascript - Angularjs Kendo 主从网格应用主从的默认 ID 以添加新的详细记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592375/

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