so passen Sie backgrid Zeile
<script type="text/template" id="date-cell">
<%= date.dateBegin %> até <%= date.dateEnd %>
<br>
<%= date.timeBegin %> até <%= date.timeEnd %>
</script>
<script type="text/template" id="status-cell">
<% if (order.enable) { %>
<% _.each(order.contacts, function(contact) { %>
<span class="contact-type"><%= contact.value %></span>
<% }); %>
<% } else { %>
<% if (order.expired) { %>
<span class="label label-expired">Expirado</span>
<% } else { %>
<span class="label label-closed">Fechado</span>
<% } %>
<% } %>
</script>
<script type="text/javascript">
var onRefreshGrid;
$(function() {
var Order,
OrderCollection,
orders,
grid;
Order = Backbone.Model.extend({});
OrderCollection = Backbone.Collection.extend({
modal: Order,
url: 'http://localhost:2000/orders.php'
});
orders = new OrderCollection();
var columns = [{
name : "hash",
label: "Cod. Pedido",
cell : 'string',
editable: false
},
{
name : "user",
label: "Nome",
cell: "string",
editable: false
},
{
name : "order",
label: "Status",
cell : Backgrid.StringCell.extend({
template: _.template($('#status-cell').html()),
render: function () {
this.$el.html(this.template(this.model.attributes));
return this;
}
}),
editable: false
},
{
name : "date",
label: "Data",
cell: Backgrid.StringCell.extend({
template: _.template(
$('#date-cell').html()
),
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
}
}),
editable: false
}];
//Initialize a new Grid instance
grid = new Backgrid.Grid({
columns: columns,
collection: orders
});
//Render the grid and attach the root to your HTML document
$('#datagrid').append(grid.render().el);
onRefreshGrid = function () {
orders.fetch({});
};
//auto execute
onRefreshGrid();
});
</script>
Ich muss hinzufügen einer hintergrund-Farbe zu jeder Zeile (tr) nach eine Bedingung, suchte an die Dokumentation erfüllt "Backgrid.Zeile.erweitern Sie" was Sie tun können, nur, dass ich es schaffen müssen, ein Basis-template .. das wäre replizieren in jeder Zeile (tr), nur dass ich auch einige Spalten costumizo wie aus dem code ersichtlich.
Meine Frage ist .. Sie können hinzufügen, ein Ereignis zu hören, um jede Zeile, und ich kann nur ändern Sie seine Attribute ohne die Störung der Struktur (html)?
- Alles, was Sie tun wollen. Zu beheben Klassen in Backgrid derzeit ist eine SCHRECKLICHE HACK: github.com/wyuenho/backgrid/issues/465
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeder Zeile oder Zelle Instanz haben Zugriff auf das gesamte Modell. Sie können Zugriff auf diese aus Ihrer
render
- Methode, und fügen Sie Ihre CSS-Klassen. So etwas wie dies zu tun:Eine Zeile ist eine Zeile, Sie sind alle gleich. Keine Notwendigkeit, um eine Vorlage zu verwenden.