2016-07-06 34 views
0

Dies ist mein erster Vorstoß in die Verwendung von angularjs, und schwere Client-Seite Javascript-Codierung. Meistens habe ich alles auf .NET Server Seite C# ASPX Seiten getan.Korrekter Ansatz, um kein Datum anzuzeigen

Verwendung von .NET MVC mit angularjs und ui-grid auf der Clientseite. Mein MVC-Controller gibt ein Dataset mit einer Datumsspalte (contract_start) zurück. Manchmal enthält start_date einen nicht initialisierten Standardwert. dies zeigt auf der ui-Raster mit einem Jahr 1900.

ich in meinem ui-Gitter columnDefs haben als das Datum zu formatieren ...

{ name: 'contract_start', width: 140, cellTooltip: true, cellFilter: 'date:"mm/yyyy"' }, 

Für die nicht initialisierten Datumswerte Dieser Parameter erscheint als „00/1900 ".

Ich möchte diese auf dem Gitter als leer zu zeigen. Was wäre der richtige Ansatz?

Denken Sie daran, dass ich später die Fähigkeit hinzufügen muss, diese Gitterzelle auch zu bearbeiten.

Eine Strategie, die ich versucht habe, ist eine Filterfunktion zu verwenden ...

{ name: 'contract_end', width: 140, cellTooltip: true, cellFilter: 'noDateFilter' }, 

Und dann die Funktion mit dem Controller hinzufügen ...

.filter('noDateFilter', function() { 
    //check if value is valid date 
    //and return string formatted as 'mm/yyyy' 
    //else return empty string '' 
    }; 
}) 

Ist das ein sauberer Ansatz oder sollte es eine mehr "eingebaute" Strategie geben?

Außerdem habe ich sogar noch ausgearbeitet, wie man in der Zelle bearbeiten kann ... beeinflusst dieser Filter die Fähigkeit, die Zelle zu bearbeiten?

Danke.

+0

Riccarr

Antwort

1

Ja, es ist besser, UI-Grid-Zellenfilter als benutzerdefinierte zu verwenden. Für die Datumsvalidierung können Sie die Daten verarbeiten, bevor Sie sie in das ui-grid schieben.

{ field: 'contract_end', displayName: 'contract_end',type: 'date', cellFilter: 'date:\'MM/yyyy\'' }]

+0

Per meine ursprüngliche Frage dann ... wie verwenden Sie Cellfilter leer Datum angezeigt wird, wenn Datum Jahr 1900? – Riccarr