У меня есть кендогрид, и когда я добавляю новую запись и перестраиваю сетку, новая запись не находится в сетке, однако, если я использую фильтр для тогда я это вижу, но чтобы увидеть его в сетке, мне нужно обновить мою страницу.Сетка не обновляется с новой записью при повторной заново, но новая запись найдена при фильтрации
При загрузке страницы он вызывает эту функцию
function GetCustomerGridData() {
kendo.ui.progress($("#Customer-Grid"), true);
$.ajax({
type: "GET",
url: URLParam.GetActiveCustomersForTheGrid,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
LoadCustomerGrid(data);
kendo.ui.progress($("#Customer-Grid"), false);
}
});
}
LoadCustomerGrid Является ли это
function LoadCustomerGrid(newData) {
CreateCustomerGrid(newData);
}
Сама сетка ..
var customerGrid,
CreateCustomerGrid = function (newData) {
customerGrid = $("#Customer-Grid").kendoGrid({
dataSource: {
data: newData
},
schema: {
model: {
CustomerID: { type: "number" }
}
},
filterable: {
mode: "row"
},
columns: [
{
template: "<input type='checkbox' class='checkbox' />",
width: "30px"
}
{
field: "LastName",
title: "Last Name",
filterable: {
cell: {
showOperators: false,
operator: "contains",
inputHeight: "34px"
}
}
},
{
field: "FirstName",
title: "Name",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
},
{
field: "Phone",
title: "Phone",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
},
{
field: "Address",
title: "Address",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
},
{
field: "City",
title: "City",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
},
{
field: "Zip",
title: "Zip",
filterable: {
cell: {
showOperators: false,
operator: "contains"
}
}
}
],
scrollable: true,
sortable: true,
pageable: {
pageSize: 20
},
selectable: "row",
height: $("#Customer-Grid").closest(".col-height-full").height() - 60,
change: function (e) {
// Function call goes here
var detailRow = this.dataItem(this.select());
var optionID = detailRow.get("CustomerID")
}
}).data("kendoGrid");
}
Когда я иду, чтобы добавить запись Я использую всплывающее окно
function CustomerPopupEditor() {
$("#showCustomerEdit").append("<div id='window'></div>");
var myWindow = $("#window").kendoWindow({
position: {
top: 100,
left: "30%"
},
width: "40%",
title: "Add Customer",
content: "/Customer/CustomerEditor",
modal: true,
actions: [
"Close"
],
close: function (e) {
$("#window").data("kendoWindow").destroy();
}
}).data("kendoWindow");
myWindow.open();
GetStates();
HomeStorage.Keys.AddOrEdit = "Add";
}
и при добавлении новой записи и нажмите кнопку сохранения, эта функция называется
function SubmitNewCustomer() {
var customer = NewCustomerToSubmit();
GetAssignmentIDs();
$.ajax({
type: "POST",
url: URLParam.AddNewCustomer + "?assignments=" + HomeStorage.Keys.AssignmentIDString,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(customer),
success: function (data, textStatus, jqXHR) {
HomeStorage.Keys.NewCustomerID = data.id;
},
complete: function (e) {
GetCustomerGridData();
ClearFields();
}
})
}
и когда я закрываю всплывающее окно на событии нажатия кнопки это называется
$("#btnCancel").click(function() {
ClearFields();
GetCustomerGridData();
CloseTheWindow();
});
В SubmitNewCustomer function Я попытался поместить GetCustomerGridData() в свою функцию успеха, и это тоже не сработало.
Данные, возвращаемые для GetCustomerGridData(), имеют более 30 тыс. Записей, но я не думаю, что это должно иметь большое значение.
Любая идея, что мне не хватает?