Javascript 更改隐藏字段值时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,

由于某些原因,在使用KendoUI网格时,我需要定义一个隐藏列:

    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");