2015-07-13 5 views
1

В моей сетке Кендо я пытаюсь проверить, является ли одно из полей столбца истинным или ложным. Если это правда, строка должна быть расширена, если она ложна, строка должна оставаться свернутой. Мое определение кода для столбца:Условно развернуть строку в сетке кендо

{ 
    field: "Comment", 
    title: txt.TXT_COMMENT, 
    template: '<input type="checkbox" #= Comment ? "checked" : "" # disabled="false" ></input>', 
}, 

Мой код состояния в DataBound для проверки, если есть данные:

dataBound: function (e) { 
    var data = this.dataItem; 
    if (data.Comment == 1) { 
    this.expandRow(this.tbody.find("tr.k-master-row")); 
    } 
    f_OnDataBound(e); 
} 

Спасибо за вашу помощь!

+0

На первый взгляд, ваша функция привязки данных не будет работать, потому что 'this' не будет иметь' dataItem'. Можете ли вы создать скрипку, которая иллюстрирует вашу проблему? Я вижу, что это не сработает, но для меня слишком мало кода, чтобы иметь возможность помочь – chiapa

+0

. Мой код, к сожалению, слишком большой и получает данные из локальной базы данных:/ – Aviator

ответ

1

Вы находитесь в правильном направлении, используя событие базы данных. Что вам нужно сделать после этого, итерация по всем строкам и проверка конкретного свойства модели и расширение или отсутствие этой конкретной строки.

var grid = $("#grid").data("kendoGrid");  
var data = grid.dataSource.data(); 
var len = data.length; 

for(var i = 0; i < len; i++) { 
    var row = data[i]; 
    if(row.Comment == '1') { // checks for the value of the Comment property 
     grid.expandRow("tr[data-uid='" + row.uid + "']"); // expands the row with the specific uid 
    } 
} 

Я проверил это и отлично работает. Я не могу знать, что на уровне Comment, но это зависит от вас, чтобы контролировать и адаптировать функцию javascript, если это необходимо.

EDIT

Я создал a fiddle, демонстрирующие выше стратегию. В этом примере функция dataBound ищет свойство «name» и расширяет строку, если она «Sally»

+0

спасибо большое, отлично работает! – Aviator

+0

есть только одна небольшая проблема, она останавливается на первом результате, расширяет только первую строку, содержащую комментарий, как я могу с этим справиться? – Aviator

+0

Что значит «останавливается на первом результате»? Разве это только расширяет первую строку, где 'Комментарий == 1', а не другие? Странно, для этого нет логической причины. Вот еще [скрипка] (http://jsfiddle.net/5MU4r/170/), которая показывает, что она отлично работает для любого количества записей. Должно быть, что-то еще тогда – chiapa

Смежные вопросы