Angularjs Grid列的更改不会影响kendo ui

时间:2014-12-06 10:04:29

标签: angularjs kendo-ui kendo-grid kendo-ui-mvc angular-kendo

我面临一个与使用带有两个按钮的kendo网格相关的问题。如果我点击第一个按钮,它应该显示三列,如果我点击第二个按钮,它应该只显示两列。但它似乎并没有起作用。我目前的例子是:

Reference Link

<div id="example" ng-app="KendoDemos">
  <div ng-controller="MyCtrl">
     <button ng-click="execute1($event)">Execute 1</button>
     <button ng-click="execute2($event)">Execute 2</button>
     <div kendo-grid="grid" k-options="gridOptions" k-rebind="selectedType"></div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

你有一个简单的错误

在这两种情况下,您使用的是dataModel1,您必须使用&#34; dataModel2&#34;对于gridOptions2

var gridOptions2 = {
        dataSource: new kendo.data.DataSource({
            data: new kendo.data.ObservableArray(dataModel2),
          columns: [
                    { field: "Id", title:"ID", width: "56px" },
                    { field: "company", title:"company", width: "110px" },
                            { field: "os", title:"os", width: "110px" }
                   ]
        })

以下解决:

http://plnkr.co/edit/Nie7eJVoPmt6xUpnmqnF?p=preview

编辑:

现在我没有解决问题:

你有这个:

var gridOptions1 = {
        dataSource: new kendo.data.DataSource({
            data: new kendo.data.ObservableArray(dataModel1),
            columns: [
                    { field: "Id", title:"ID", width: "56px" },
                    { field: "company", title:"company", width: "110px" }

                   ]
        })
    };

但&#34;列&#34;应该在DataSource之外,如下所示:

var gridOptions1 = {
        dataSource: new kendo.data.DataSource({
            data: new kendo.data.ObservableArray(dataModel1),

        }),
         columns: [
                    { field: "Id", title:"ID", width: "56px" },
                    { field: "company", title:"company", width: "110px" }

                   ]
    };

这是有效的:

http://plnkr.co/edit/qQ2IzHSyGM7SsZxE3BEI?p=preview