Kendo UI Grid,如何将参数添加到数据源读取URL并刷新网格?

时间:2015-03-26 15:19:13

标签: angularjs kendo-ui

我有KendoUI和AngularJs的单页应用程序。我有两个带两个控制器的网格。当我选择第一个网格行(电影)时,我想将movieId传递给第二个控制器并获取此电影的演员。

这是我的第二个控制器:

myApp.controller("ActorsCtrl", function ($scope, $rootScope) {

    $rootScope.$on("SetMovieId", function (event, movieId) {
        alert(movieId);
        $scope.movieId = movieId;
        $scope.actorsGrid.dataSource.read();
        $scope.actorsGrid.dataSource.refresh();
    });

    $scope.actorsGrid = {
        dataSource: {
            type: "application/json",
            transport: {
                read: {
                    url: "/Actors/GetActors",
                    data: { movieId: $scope.movieId }
                }
            },
            pageSize: 5,
            serverPaging: true,
            serverSorting: true
        },
        sortable: true,
        pageable: true,
        dataBound: function () {
            this.expandRow(this.tbody.find("tr.k-master-row").first());
        },
        columns: [{
            field: "Name",
            title: "Name",
            width: "120px"
        }, {
            field: "BirthDate",
            title: "Birth Date",
            template: "#= kendo.toString(kendo.parseDate(BirthDate, 'yyyy-MM-dd'), 'MM/dd/yyyy') #",
            width: "120px"
        }]
    };
});

这部影片是否正确添加? 如何刷新网格? 我的例子不起作用:(

1 个答案:

答案 0 :(得分:0)

Kendo UI Datasource具有事件requestStart,您可以在其中传递参数以请求URL。



var urlFormat = "/actors/{0}";

var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: "/actors/",
      dataType: "jsonp"
    }
  },
  requestStart: function(e) {
    e.options.url = kendo.format(urlFormat, movieId);
  }
});