2017-07-03 57 views
0

我有一个剑道网格,有复选框供选择。 当我点击复选框,我更改类行,以“K-状态选择”,并保存行ID在剑道网格变化排班不工作

var checkedIds = []; 

然后,我有一个上下文菜单,在这里我可以选择我想要的变化适用于该行。

在这种情况下,我想改变所有行的有价值的东西。这样可行。

然后,我有这一段代码恢复先前选定的行。

private setCheckRows(checkedIds) { 
      $.each(checkedIds, (index, value) => { 
       $("#grid tbody").find("tr").each(
        function() { 
         if ($(this).closest("tr").attr("Id") === value) { 
          $(this).closest("tr").addClass("k-state-selected") 
           .attr("style", "background-color: rgb(51,121,181)") 
           .find(".checkbox") 
           .attr("checked", "checked"); 
         } 
        }); 
      }); 
     } 

它的工作原理,但随后又是不...

如果我选择一个复选框,这段代码什么也不做

if ($(this).closest("tr").attr("Id").replace("task-row-", "") === value) { 
          $(this).closest("tr").addClass("k-state-selected") 
           .attr("style", "background-color: rgb(51,121,181)") 
           .find(".checkbox") 
           .attr("checked", "checked"); 

        } 

如果我选择两个或更多的复选框它适用于除第一行以外的所有行。

所以所有的行,除了第一个,恢复到被选择,并用蓝色背景。

这的确是一个很奇怪的行为。

任何想法? Tks提前。

+0

可以再现[道场】您的问题(http://dojo.telerik.com/)/ [的jsfiddle](https://jsfiddle.net/)? – Sandman

回答

0

我设法解决它。

我改变了这种

$.ajax({ 
       type: "POST", 
       url: "/Cockpit/SetWorkflowStep", 
       dataType: "json", 
       data: JSON.stringify(newTaskStatus), 
       contentType: "application/json" 
      }).done(() => { 
       $("#grid").data("kendoGrid").dataSource.read(); 
       this.setCheckRows(checkedIds); 
      }); 

这个

$.ajax({ 
       type: "POST", 
       url: "/Cockpit/SetWorkflowStep", 
       dataType: "json", 
       data: JSON.stringify(newTaskStatus), 
       contentType: "application/json" 
      }).done(() => { 
       $("#grid").data("kendoGrid") 
          .dataSource.read() 
          .done(() => { this.setCheckRows(checkedIds); }); 
      }); 

现在它工作正常。