4 Stimmen

Erstellen Sie eine Seriennummernspalte in der Telerik MVC-Raster

Ich konnte mit Telerik MVC ein Raster erstellen

<% Html.Telerik().Grid(Model)
    .Name("ProductGrid")
    .Columns(columns => { 
                        columns.Bound(h => h.SerialNumber).Width("10%"); // Hier Serial Number hinzufügen
                        columns.Bound(h => h.ProductName).Width("34%");
                        columns.Bound(h => h.Description).Width("60%");
                        columns.Bound(h => h.ProductID).Format(Html.ImageLink("Bearbeiten", "Products", new { Id = "{0}" }, "/Content/images/icon_edit.gif", "", new { Id = "edit{0}" }, null).ToString()).Encoded(false).Title("").Sortable(false).Width("3%");
                        columns.Bound(h => h.ProductID).Format(Html.ImageLink("Löschen", "Products", new { Id = "{0}" }, "/Content/images/icon_delete.gif", "", new { onclick = string.Format("return confirm('Sind Sie sicher, dass Sie dieses Element löschen möchten?');") },null).ToString()).Encoded(false).Title("").Sortable(false).Width("3%");
        })

    .EnableCustomBinding(true)
    .DataBinding(databinding => databinding.Ajax().Select("_Index", "ProductGrid"))
    .Pageable(settings => settings.Total((int)ViewData["TotalPages"])
    .PageSize(10))
    .Sortable()
    .Render(); %>

aber ich muss eine Seriennummernspalte im Telerik-Raster hinzufügen. Wie kann ich das machen?

3voto

yayadavid Punkte 434

Ich denke, der beste Weg ist, eine Template-Spalte so zu verwenden.

<% 
    var sn = 0;
    Html.Telerik().Grid(Model).Name("Grid").HtmlAttributes(new { style = "width:auto" })
        .EnableCustomBinding(true)
        .Columns(columns =>
                    {
                        columns.Template(c=> {%> <%: ++sn %> <% }).Title("S/N");
                        columns.Bound(c => c.CustomerNumber);
                        columns.Bound(c => c.Narration);
                    })
                    .Render();  %>

Auf diese Weise müssen Sie keine Seriennummern-Eigenschaften zu Ihren View-Modellen hinzufügen.

Hoffe das hilft?

0voto

Ich denke, der beste Weg, dies zu tun, besteht darin, eine SerialNumber-Spalte zu Ihrer Produktklasse hinzuzufügen, die Ihr Modell ist, und dann einfach eine weitere gebundene Spalte zum Raster hinzuzufügen, so:

columns.Bound(h => h.SerialNumber)

Wenn Sie eine Liste von Produkten übergeben, können Sie die SerialNumber-Spalte wie folgt befüllen:

List products = GetList(); // Ihre Methode, um Daten hier zu erhalten
int counter = 1;
products.ForEach(x => x.SerialNumber = counter++);

Wenn Sie konsistente Nummern mit Paging unterstützen möchten, müssen Sie den Anfangswert der counter-Variablen selbst berechnen. Zu diesem Zweck müssen Sie die aktuelle Seite und die Seitengröße haben.

-1voto

Saurabh Punkte 1319

Im MVC Web Grid verwenden Sie diese Berechnung

 grid.Column(header: "#",
   format: item => item.WebGrid.Rows.IndexOf(item) + 1 + Math.Round(Convert.ToDouble(grid.TotalRowCount / grid.PageCount) / grid.RowsPerPage) * grid.RowsPerPage * grid.PageIndex),

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X