Javascript 更改隐藏字段值时KendoUI栅格火灾更新方法
由于某些原因,在使用KendoUI网格时,我需要定义一个隐藏列:Javascript 更改隐藏字段值时KendoUI栅格火灾更新方法,javascript,kendo-ui,Javascript,Kendo Ui,由于某些原因,在使用KendoUI网格时,我需要定义一个隐藏列: var fields = { ID: { type: "string", editable: true, nullable: false }, HideID : { type: "string", editable: false, nullable: false ,hidden: true }, Name: { type: "string", editable: true,
var fields = {
ID: { type: "string", editable: true, nullable: false },
HideID : { type: "string", editable: false, nullable: false ,hidden: true },
Name: { type: "string", editable: true, nullable: false }
};
var ColumnsDefine = [
{ field: "ID", title: "ID", width: 100 },
{ field: "HideID", hidden: true },
{ field: "Name", title: "Name", width: 100 }
];
我使用JavaScript(操作数据项)更改HideID列值,而不编辑网格记录
更改隐藏字段的JavaScript代码如下所示(它位于命令单击函数中)
现在的问题是,当我单击默认的更新按钮时,后台更新方法不会被调用,因为我没有对任何可见列进行更改。但是,如果我修改任何可见列并单击“更新”,则HideID和另一个字段都将在后台成功更新
我应该怎么做才能通知KendoUI网格其数据已更改,并通过单击更新按钮触发更新方法?您的网格
数据项将是一个;您需要设置HideID
属性,使剑道框架能够使用其方法看到更改:
一旦您这样做了,您应该会发现它是脏的
字段设置为真的
。它向数据源发出信号,表示此对象有需要通过update
方法保存的更改
另请参阅本文,它很好地解释了如何使用observeObject进行绑定
希望这有帮助 您能分享一下更改HideID
列的代码吗?@Joe Glover Hi我在下面添加了相关代码谢谢!还有,是否要将自定义命令按钮标记为在data.set()方法之后编辑的?我找到$(currentRow.find(“.k-grid-CustomCommand span”).addClass(“k-dirty”);不再工作了别担心,很高兴解决了你的问题。您的代码段取决于按钮内的跨距,网格可能不会呈现该跨距。如果您设置了,它将生成一个span,也许您可以尝试将其设置为一个不存在的类,以获得一个span,然后您可以将k-dirty
类附加到该span?谢谢!我试试看
var tr = $(e.target).closest("tr");
var data = this.dataItem(tr);
data.HideID = "123";
var tr = $(e.target).closest("tr");
var data = this.dataItem(tr);
data.set("HideID","123");