Я работаю с Kendo + бритвой, и я хочу создать сетку Kendo, у которой нет конкретной модели данных (в моем случае я должен показать результаты SQL запрос, введенный пользователем, поэтому результат может иметь любое количество/тип столбцов). Чтобы сделать его общим, я попытался связать сетку с System.data.DataTable и ajax-вызовом для заполнения этой сетки. Он отлично работает при загрузке в первый раз, но когда я повторяю ту же сетку, она не обновляет имена столбцов.Как связать сетку Kendo с динамическим datatable
Сценарий:
Вызов Ajax производится нажатием кнопки, чтобы заполнить сетку результатами запроса. При первом вызове ajax результатом был JSON с атрибутами id, name и description. Сетка показала правильные данные с 3 вышеупомянутыми столбцами и 4 строками.
На втором вызове ajax ответ JSON содержит атрибуты UserName, UserType, Address, PhoneNumber, на этот раз сетка не обновляет привязку модели и столбцы остаются предыдущими тремя столбцами id, name и description, но количество строк обновляется без данных в нем (поскольку столбцы отсутствуют в возвращенном JSON)
Я хочу переустановить столбцы к возвращаемым атрибутам JSON, которые могут различаться каждый раз.
Вот мой HTML код:
@model System.Data.DataTable
<div>
@(Html.Kendo().Grid(Model)
.Name("ResultsGrid")
.TableHtmlAttributes(new { Class = "kendoGrid" })
)
</div>
и Javascript на кнопку кода мыши:
function execute() {
$.ajax({
url: "something something",
type: "GET",
contentType: "application/json;charset=utf-8",
data: "",
dataType: "json",
success: function (data) {
$("#ResultsGrid").kendoGrid({
scrollable: false,
pageable: true,
sortable: true,
resizable: true,
dataSource: {
data: data,
pageSize: 5
}
});
}
}
Как я могу обновить сетку для привязки к столбцам в новые атрибуты JSON?
Атанас, спасибо за ответ. Я решил проблему, используя: $ (". K-grid .k-grid-header"). Remove(); $ (". K-grid .k-grid-header"). Add(); и он отлично работает для меня ... но я обязательно попробую ваше решение и сравню два результата. – jia