Когда я пытаюсь вызвать .dataBind () для объекта Telerik Grid в javascript, он вызывает исключение.Тот же код, который я использовал, прекрасно работал с предыдущей версией элементов управления Telerik (2010.2.930), но после обновления (с использованием NuGet) до последней версии (2011.2.712) код сломался.
Это различные ошибки в разных браузерах.
Firefox 6: this.dataSource не определен (telerik.grid.min.js - строка 1)
Chrome 13: Uncaught TypeError: Невозможно вызвать метод 'success' из неопределенного (telerik.grid.min.js: 1)
IE 9: SCRIPT5007: невозможно получить значение свойства 'success ': объект является нулевым или неопределенным (telerik.grid.min.js, строка 1, символ 25697)
Мне удалось создать очень простое репо, все, что вам нужно сделать, это поместить его в новую страницу:
<div>
@(Html.Telerik().Grid(new List<GridData>())
.Name("TestGrid")
.Columns(column =>
{
column.Bound(e => e.Name).Title("Name").Width("9em");
column.Bound(e => e.Description).Title("Description").Width("9em");
}))
</div>
<p>
<a id="getData" href="#">Bind Data</a>
</p>
<script type="text/javascript">
(function ($) {
$(document).ready(function () {
$('#getData').click(bindGridData);
});
})(jQuery);
var bindGridData = function() {
var grid = $("#TestGrid").data("tGrid");
var testData = [
{ Name: "Name 1", Description: "Description 1" },
{ Name: "Name 2", Description: "Description 2" }
];
grid.dataBind(testData);
};
</script>
Класс GridData - это просто простое POCO со свойствами строки Name и Description.