我对Kendo UI完全不熟悉,所以也许我错过了一些东西,但在阅读了文档API:http://docs.kendoui.com/api/framework/model之后,似乎Kendo仅限于使用单个ID。
例如,假设我有一个网格,其中每一行都由一对值标识(因为基础数据具有这样的约束)。那么,如果我读得正确,在剑道中没有直接表达方式吗?
我能想到的一个解决方法是创建一些ad-hoc值,它是编码的id,如“value1 | value2”(字符串),当从UI获取数据时,将它们解码回来。
还有更明确的方法吗?
具体示例
专注于实质性的事情:
http://demos.kendoui.com/web/grid/editing-inline.html
并且相关代码是(来自.cshtml文件):
.Model(model => model.Id(p => p.ProductID))
.Model(model => model.Id(p => p.ProductComboId1Id2))
其中ProductComboId1Id2
是按上述方式编码的字符串。
请参阅页面底部,这是Kendo安装的问题。安装程序脚本没有安装一个关键的.js文件,整个框架变得奇怪。我的问题是其中一个不当行为。
答案 0 :(得分:11)
您可以在单个网格上使用多个ID。下面我已经包含了声明它们的语法以及如何通过javascript访问它们。
<强>声明强>
.Model(model =>
{
model.Id(i => i.ProductID);
model.Id(i => i.ProductID2);
})
<强>访问强>
function GetIDs() {
var itemGrid = $("#GRIDNAME").data("kendoGrid");
var dataItem = itemGrid.dataItem($(this));
var ID1 = dataItem.ProductID;
var ID2 = dataItem.ProductID2;}
函数GetID()将通过行的命令列在网格上调用:
columns.Command(command =>
{
command.Custom("Edit").Text("Edit").Click("GetIDs");
command.Destroy();
});
答案 1 :(得分:0)
也许这是安装脚本中的错误,或者不是,我不知道,但问题是Kendo安装程序没有安装一个关键文件。即...
当你通过NuGet Install-Package KendoIOWeb
安装Kendo软件包时,不安装文件kendo.aspnetmvc.min.js
,这个文件是至关重要的。有了这一切,我得到了删除的确认,id是通过POST而不是GET发送的(我确切地说是如何配置它们),页面显示在行动之后,简而言之 - 最后它是有道理的。
所以要修复它,不要乱码,只需从Kendo网站手动下载zip文件,获取此文件并将其放在Content目录中。
由于Kendo的NuGet安装程序创建了这样的结构Content\kendo\2012.2.710
,以下是我用Content\kendo
这个额外的.js文件的所有文件,这样它会提醒我这是手动添加。