Ich habe eine ASP.Net MVC-Site mit einem KOGrid in einer meiner Ansichten. Dadurch werden Daten abgerufen, indem ein Ajax-Aufruf an einen Controller gesendet wird, der dann über EF aus SQL Server auswählt. Meine Datentabelle kann unten gesehen werden:KO Grid - wiederholender Wert
ich die folgende Spaltendefinition für meine KO Grid haben:
self.columnDefs = [
{ width: 50, field: 'workflowTask_WorkflowTaskId', displayName: 'Id' },
{ width: 150, field: 'Timestamp', displayName: 'Timestamp', cellFilter: function (data) { return moment(data).format('DD/MM/YYYY h:mm a') } },
{ width: 100, field: 'currentState', displayName: 'Crnt State' },
{ width: 500, field: 'note', displayName: 'Notes' },
{ width: 100, field: 'previousState', displayName: 'Prev State' },
{ width: 100, field: 'currentUser', displayName: 'Crnt User', sortable: false },
{ width: 100, field: 'amendedByUser', displayName: 'Amnd By', sortable: false },
{ width: 100, field: 'previousUser', displayName: 'Prev User', sortable: false }
];
Ich habe folgende Optionen auswählen:
self.gridOptions = {
data: self.recs,
columnDefs: self.columnDefs,
autogenerateColumns: false,
showGroupPanel: true,
canSelectRows: false,
showFilter: true,
filterOptions: self.filterOptions,
enablePaging: true,
pagingOptions: self.pagingOptions,
sortInfo: self.sortInfo,
rowHeight: 35
};
I ein beobachtbares Array haben, um die Daten, die im Kogrid angezeigt werden sollen, zu speichern:
self.recs = ko.observableArray([]);
Dies wird durch die folgende JavaScript-Funktion bevölkert:
self.get = function() {
$loadingIndicator.show();
$.ajax({
url: BASE_URL + 'TaskHistory/GetRecords',
type: 'get',
data: {
'page': self.pagingOptions.currentPage(),
'pageSize': self.pagingOptions.pageSize(),
'filter': self.filterOptions.filterText == undefined ? '' : self.filterOptions.filterText(),
'sort': self.sortInfo().column.field + ' ' + self.sortInfo().direction
},
contentType: 'application/json; charset=utf-8',
success: function (data) {
self.pagingOptions.totalServerItems(data.RecCount);
var recsArray = [];
$.each(data.PageOfRecords, function (key, value) {
recsArray.push(
new Task(value.WorkflowTaskHistoryId,
value.Timestamp,
value.PreviousState,
value.CurrentState,
value.AmendedByUser,
value.Note,
value.PreviousUser,
value.CurrentUser,
value.WorkflowTask_WorkflowTaskId));
});
self.recs(recsArray);
}
});
$loadingIndicator.hide();
};
Wie im folgenden Bildschirm greifen von Chrome Entwickler-Tools zu sehen, diese beobachtbaren korrekt ausgefüllt ist:
Mein Problem ist - wenn angezeigt, sind die angezeigten Datum alle für die aktuelle Maschine Datetime - nicht im Zusammenhang mit den Daten von der Ajax-Aufruf abgerufen, wie unten dargestellt:
Kann jemand bitte sehen, wo ich falsch gelaufen bin?
können Sie sich 'Moment (Daten) .format ('DD/MM/YYYY h: mm a')' im '' cellFilter' Definition für KO Grid' um zu sehen, zu welchem Zeitpunkt Sie erhalten für jede Iteration –
bekomme ich die gleiche Zeit für jede Iteration –