Javascript 剑道UI网格更新功能不会启动
这是我的剑道UI网格。读起来不错,但问题是当我更改网格单元格内联时,它不会触发datasource.transport.update调用。为什么不呢 我已经确定我指定了一个id列,并且传输CRUD函数都是相同的类型(这里是函数,不是URL),但是我也尝试让它与URL一起工作。只有transport.read会开火 当我检查控制台日志时,没有给出任何错误Javascript 剑道UI网格更新功能不会启动,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,这是我的剑道UI网格。读起来不错,但问题是当我更改网格单元格内联时,它不会触发datasource.transport.update调用。为什么不呢 我已经确定我指定了一个id列,并且传输CRUD函数都是相同的类型(这里是函数,不是URL),但是我也尝试让它与URL一起工作。只有transport.read会开火 当我检查控制台日志时,没有给出任何错误 所以我想在线编辑它。单击网格上的一个单元格,并在您离开该单元格的焦点时更改该值,我希望dataSource.transport.update()
所以我想在线编辑它。单击网格上的一个单元格,并在您离开该单元格的焦点时更改该值,我希望dataSource.transport.update()或任何函数运行 编辑: 在对文档进行了一些研究之后,我发现了change()事件。通过检查它是什么类型的更改事件,我们可以确定它是否是更新事件,并自行运行我们想要的函数。以下是我更新的JSFIDLE: 如果有人想出了一种不需要自己调用更新函数的方法,那么我洗耳恭听。尝试改变
$('#usersGrid').kendoGrid({
columns: [
{ field: "UserName", title: "Display name", width: "140px" },
{ field: "Unit", title: "Unit", width: "140px" },
{ field: "Email", title: "E-mail", width: "140px" },
{ field: "Indienst", title: "Indienst", width: "140px" },
{ field: "Uitdienst", title: "Uitdienst", width: "140px" },
{ field: "Roles", title: "Roles" },
{ command: { text: "edit", click: openEdit } }
],
editable: {
update: true,
create: true
},
dataSource: {
transport: {
read: function (options) {
$.ajax({
url: "/Administration/GetUserList",
dataType: "json",
data: {
indienst: function () {
return indienst;
}
},
success: function (data) {
$("#usersGrid").data('kendoGrid').dataSource.data(data);
}
});
},
update: function (options) {
alert('not firing');
}
}
},
schema: {
model: {
id: "UserId",
fields: {
UserId: { editable: false, type: "int" },
UserName: { type: "string" },
Unit: { editable: false, type: "string" },
Email: { type: "string" },
Indienst: { type: "string" },
Uitdienst: { type: "string" },
Roles: { editable: false, type: "string" }
}
}
}
});
到
要编辑内联,只需利用 将命令列更改为:
command: ["edit"]
并将您的可编辑规范更改为“内联”
:
我已编辑了您的解决方案:
为了完全充实这一点,您必须从命令中提供相关方法的实现,例如更新、创建等。。。您可以在中看到这些示例
如果您想使用自定义编辑器(下拉列表等)进行单元格单击编辑,请参见
还有。如果使用的是可编辑:弹出窗口
,请尝试以下操作:
editable: "inline",
命令:[
{名称:“视图”,模板:,文本:,},
{名称:“编辑”,文本:},
{名称:“销毁”,文本:}
],标题:,宽度:“160px”
这里的诀窍是给命令数组中的文本
键留出空白(”
)编辑按钮对内联单元格编辑有影响吗?编辑按钮(openEdit)工作正常,但问题是内联编辑无法工作。我马上试试你的解决方案。你能创建JSFIDLE项目吗?你的按钮是自定义按钮,这就是它启动openEdit
函数的原因。但我尝试将其更改为默认的编辑按钮,就像我的答案一样,但没有任何更改。更新函数没有被激发。很抱歉,我找不到问题所在。我还尝试了错误处理,但也没有触发错误事件。是的,我有一个自定义弹出窗口,在触发openEdit()时打开。但我的实习老板说他也希望能够在线编辑。谢谢你的帮助,我似乎也弄不明白。我想在线编辑它。单击网格上的一个单元格,并在您离开该单元格的焦点时更改该值,我希望dataSource.transport.update()或任何函数运行。我不能让它着火。很抱歉,我把您和命令编辑按钮列混淆了。我应该忽略这一点。我已经为内联编辑解决方案编辑了我的答案,并更新了小提琴。我使用change()事件让它工作,并自己启动了更新函数。如果你能找到一种自动完成的方法,那么我会接受你的回答。我会更新我的问题。尽我所能,你所做的是正确的方法,也是我说你需要。。。“执行命令中的相关方法,如更新、创建等。”啊,太棒了。我误解了,我以为你想让我用命令按钮更新。奇怪的是我花了这么长时间才启动了更新功能。。。在网上搜索了几个小时:p谢谢你的帮助。
{ command: ["edit", "destroy"], title: " ", width: "160px" }
editable: "inline",
command: [
{ name: "view", template: "<a class='k-button k-button-icontext selectDiscountPercentage' title='Discount Percentage' ><i class='k-icon k-i-view'></i></a>", text: "", },
{ name: "edit", text: "" },
{ name: "destroy", text: " "}
], title: " ", width: "160px"