在kendo网格的列中调用JS函数

时间:2017-10-04 13:29:09

标签: javascript c# jquery asp.net-mvc kendo-grid

我有一个包含多列和多行的kendo网格。我希望最后一列显示计算数据。我想制作一个AJAX方法获取ID并从数据库中获取一些数据并在此列中显示它(所有行)。我怎么能这样做?

var grid = $("#grid").kendoGrid({
  dataSource: ds,
  columns: [{
    field: 'ID',
    title: '#',
    hidden: true
  }, {
    title: 'Test',
    filterable: false,
    width: "130px",
    ClientTemplate: "#=MyMethod(ID)#"
  }]
}).data("kendoGrid");

function MyMethod(ID) {
  var returnData = 0;
  $.get('@Url.Action("Action", "Controller")', {
    Id: ID
  }, function(response) {
    returnData = response;
  });
  return returnData;
}

1 个答案:

答案 0 :(得分:1)

我建议你不要这样做。

我说这个的原因是因为你会为每一行触发一个ajax调用,并且可能会有很多行,这可能意味着在你向用户展示一些东西之前会有很长的延迟。

您很可能有一个数据库调用来返回数据。在那一个呼叫中,进行所需的任何计算,如果它只是一个总数,则数据库本身可以以非常快的方式处理这个。因此,在那里进行计算,将计算字段作为数据集中的额外字段返回,然后您的UI只需显示已计算的字段。

它会更快,更好用户体验。