Я настроил простой пример в jsFiddle, где я инициализирую сетку кендо, а затем привязываю модель представления. Данные заполняются в сетке для каждой строки в Chrome, но не в IE9.
Вот html:
<div id="example">
<table>
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Units</th>
</tr>
</thead>
<tbody data-template="row-template" data-bind="source: products"></tbody>
</table>
<script id="row-template" type="text/x-kendo-template">
<tr>
<td data-bind="text: name">
</td>
<td>
#: kendo.toString(get("price"), "C") #
</td>
<td data-bind="text: unitsInStock"></td>
</tr>
</script>
</div>
Вот JS:
$(document).ready(function () {
var viewModel = kendo.observable({
products: [{
name: "Hampton Sofa",
price: 989.99,
unitsInStock: 39
}, {
name: "Perry Sofa",
price: 559.99,
unitsInStock: 17
}, {
name: "Donovan Sofa",
price: 719.99,
unitsInStock: 29
}, {
name: "Markus Sofa",
price: 839.99,
unitsInStock: 3
}]
});
$("#example table").kendoGrid();
kendo.bind($("#example"), viewModel);
});
Вот jsFiddle: http://jsfiddle.net/e2XHN/1/
В моем исходном примере я использую data-role="grid"
для элемента таблицы, но этот код понятнее. Если $("#example table").kendoGrid();
стоит после kendo.bind($("#example"), viewModel);
, то он работает в IE. Если раньше то не работает и в консоли не появляется никаких исключений. В хроме работает в обе стороны.
Я знаю, что могу просто настроить его как источник данных для сетки. Я предпочитаю использовать data-role="grid"
, вот почему меня это волнует.
Итак, у меня есть обходной путь, но кто-нибудь знает, почему это не работает в IE9, но работает в Chrome?
Я бы просто открыл это как ошибку в Telerik, но когда я захожу в их общедоступный трекер проблем (http://www.telerik.com/support/pits.aspx) у меня ничего не отображается.