2014-04-04 7 views
5

Ho creato un ng-griglia con le seguenti definizioni delle colonne:formato di data in ng-grid modello di fila

columns: [ 
    { field: "CompanyPkid", visible: false }, 
    { field: "CompanyName", visible: false }, 
    { field: "StartDate", visible: false, cellFilter: "date:'yyyy-MM-dd'" }, 
    { field: "CompanyId", 
    displayName: "Company ID", 
    cellTemplate: "<div class=\"ngCellText\" ng-class=\"col.colIndex()\">"+ 
        "<a href=\"Company/Edit/{{row.getProperty('CompanyPkid')}}\">"+ 
         "{{row.getProperty(col.field)}}"+ 
        "</a><br />"+ 
        "{{row.getProperty('CompanyName')}}<br />"+ 
        "{{row.getProperty('StartDate')}}"+ 
        "</div>", 
    }], 

Una delle colonne è una colonna data di nascosto.

Una delle colonne utilizza un modello e include il valore dalla colonna della data nascosta.

Desidero formattare la data nella colonna multilinea su yyyy-MM-dd. È possibile? Se é cosi, come?

risposta

10

utilizzare il filtro date, in questo modo:

{{row.entity.StartDate | date:'yyyy-MM-dd'}} 
+1

Brillante! Grazie! –

1

mi sono imbattuto in un problema con l'approccio di cui sopra. Se si sta utilizzando il filtraggio o l'ordinamento sulla colonna, operano ancora sul timestamp o sull'oggetto Date dal valore del campo, non sui risultati dell'utilizzo del filtro all'interno di cellTemplate. Quindi, gli utenti potevano inserire "03" nel filtro colonna ma vedere una data come "31/12/2005" - il 03 era nel timestamp, che non è mostrato.

La soluzione che ho trovato è utilizzare CellFilter: 'date:"MM/dd/yyyy"' nell'oggetto columnDef. Ciò preserva sia l'ordinamento che il filtraggio e consente di visualizzare la data come desiderato. Ringraziamo Victor: http://www.victorshi.com/blog/post/How-to-format-a-datetime-column-in-ng-grid