asp.net-mvc - 通过模型定义剑道网格
问题描述
对于我要添加的功能,我在同一页面上使用了几个不同的网格。所有这些网格都应该能够影响“删除”、“编辑”和“创建”按钮执行的代码。
为了分隔网格,我可以使用它们的名称,但这对于子网格来说是相当有问题的。我目前使用的代码如下:
function deleteButton()
switch(selectedGrid) {
case $("#GridA").data("kendoGrid"):
log("A"); break;
case $("#GridB").data("kendoGrid"):
log("B"); break;
}
selectedGrid 存储了一个网格,该网格应确定要执行的函数。从这个网格中,我更愿意提取模型(名称)并将其用作 switchcase 变量。结果看起来像这样:
function deleteButton()
switch(selectedGrid.Model) {
case 'modelA':
log("A"); break;
case 'modelB':
log("B"); break;
}
目前我使用日志而不是函数,但想法是一样的。我选择这种方法的原因是因为多个网格使用相同的模型并且应该调用相同的案例。
剑道网格中用于调用函数以设置 selectedGrid 变量的代码:
.Event(event => event.Change("function(){onRowSelectGrid('grid', 'model');}"))
页面 js 中用于设置 selectedGrid 变量的代码:
function onRowSelectGrid(datagrid, model) {
if (typeof (selectedGrid) !== 'undefined' && selectedGrid !== $("#" + datagrid).data("kendoGrid")) {
//Remove rowselection from the previous grid
selectedGrid.select().removeClass("k-state-selected");
}
var grid = $("#" + datagrid).data("kendoGrid");
selectedGrid = grid;
}
我知道这不是您每天的情况,所以如果唯一的解决方案是为每个网格设置单独的按钮,我会理解的。但是,我个人更喜欢所有网格都可以使用的动态代码。
如果有任何问题或需要更多解释,请告诉我。如果有办法以某种方式使用名称(包括子网格的名称),我肯定想看看这样的解决方案。
解决方案
好的,所以这可能不是最好的解决方案,但它确实有效。我所做的是在保存选定网格的代码中添加一些内容。
selectedGrid = grid;
通过向变量添加“模型”来指示网格的模型:
selectedGrid.model= model;
这样,当从按钮调用网格时,我可以调用模型变量来指示应该使用什么方法。
function deleteButton()
switch(selectedGrid.model) {
case 'modelA':
log("A"); break;
case 'modelB':
log("B"); break;
}
希望这可以帮助遇到同样问题的任何人。
推荐阅读
- c# - 在 C# 中执行具有复杂输出的 cmd 命令
- reactjs - 如何在 URL 中传递值以及如何在 React JS 中从 URl 获取值
- html - 从本地文件系统打开文件时如何创建下载链接
- java - ZonedDateTime 作为 Epoch 时间而不是 Spring App 中的标准字符串返回
- css - 更改颜色 Office UI Fabric 切换
- angular - 如何在 Angular 7 中找到此错误来自“_co.xyz 变量未定义”的行号或文件
- c# - 将 JSON 数组反序列化为字典
> - c# - 使用 Utf8Json 序列化/反序列化时指定 Epoch TimeDate 格式
- c# - Razor Pages 实体框架数据库上下文不能执行命令
- ios - 由于超出每个设备的使用率限制 Places API,操作失败