2015-11-24 4 views
1

Пожалуйста, ознакомьтесь exampleКендо Сетка: Конфигурация Обновления колонки после Кендо Сетки инициирована

Я хочу, чтобы обновить столбцы AFTE кендо сетки инициированной.

Например текущее определение столбцов как это:

   columns: [{ 
       field: "FirstName", 
       title: "First Name", 
       width: "120px" 
       },{ 
       field: "LastName", 
       title: "Last Name", 
       width: "120px" 
       },{ 
       field: "Country", 
       width: "120px" 
       },{ 
       field: "City", 
       width: "120px" 
       },{ 
       field: "Title" 
      }] 

После сетки представлены, я хочу, чтобы обновить определение столбцов, как это:

   var newCol = [{ 
       field: "FirstName", 
       title: "You First Name", 
       width: "200px" 
       },{ 
       field: "LastName", 
       title: "You Last Name", 
       width: "200px" 
       },{ 
       field: "Title" 
      }] 

Я хочу эту функцию, так как ей позволяет пользователям динамически изменять всю сетку. Не только dataSource, но и столбцы. Они могут выбрать сброс ширины, названия. Они могут выбрать запрос данных, которые они хотят, и представить их в сетке с помощью конфигурации с определенными столбцами.

Я знаю, что могу уничтожить сетку, а затем создать другую, но это может быть необязательно, верно? Любая помощь приветствуется.

Спасибо.

+0

Возможный дубликат [Как изменить столбцы набора кендо сетки динамически] (http://stackoverflow.com/questions/ 17205595/how-to-change-columns-set-of-kendo-grid-dynamic) –

ответ

4

Кулак всего, что вам нужно, чтобы получить ссылку на экземпляр kendoGrid. Для этого вам нужно назвать директиву в шаблоне, например:

<div kendo-grid="grid" options="mainGridOptions"></div> 

Так что в вашем объеме $scope.grid будет экземпляр сетки. Затем вы можете использовать обычные методы сетки, как hideColumn:

$scope.grid.hideColumn(2); // hide the second column 

Демо:http://dojo.telerik.com/iyuZE/5

+0

Спасибо. Есть ли способ заменить всю конфигурацию столбца новой? Вместо того, чтобы менять их один за другим? – Tong

+0

Ну, вы также можете сделать что-то вроде этого: $ scope.mainGridOptions.columns = [...]; $ Scope.grid.setOptions ($ scope.mainGridOptions) '. http://dojo.telerik.com/iyuZE/6 – dfsq

+0

Вот что я хочу ... Я действительно хочу сказать ... Я искал его так долго. Благодарю. – Tong