Frage

Code unten funktioniert hervorragend mit ASPX View Engine. Ich versuche, ihn wie unten in Rasiermesser umzuwandeln. Das Problem ist die erste Spalte, die nicht angezeigt wird.

Ich konvertiere die erste Spalte mithilfe der Aktionsmethode in die Link. Mit Rasiermesser (erste Spalte) wird überhaupt nicht auf Seite gerendert. Der Rest des Netzes ist in Ordnung.

Was könnte das Problem sein?

@{Html.Grid(Model.Orders).Attributes(style => "width: 100%;").Columns(
column => {
    column.For(x => x.OrderNumber).Action(p => {
        @:<td>
        Html.ActionLink(
            p.OrderNumber.ToString(),
            "orderdetail",
            "OrderUpdate",
            new { id = p.OrderNumber, backUrl = Url.Action("OrderHistory", new { controller = "DataController", id = ViewData["id"] }) },
            new { });
        @:</td>
    }).HeaderAttributes(style => "text-align:left");

    column.For(x => x.OrderTimeV2).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Status).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Type).HeaderAttributes(style => "text-align:left");
}).RowStart((p, row) => { }).Render();}
War es hilfreich?

Lösung

Ich habe mich von der Verwendung von MVCContrib -Gitter entfernen, da es im Netz, das wir haben, nicht viel Sinn macht.

Auf jeden Fall war das Problem, dass Code in der Frage HTML nicht zurückgibt, sondern Code direkt in den Antwortstrom einbringt. Und Code für Spalten, die mit Rasiermesser gerendert werden, die bei Anruf in Stream in Stream einbringt. Daher bringt es Spalten in den Strom, bevor das Gitter gerendert wird.

Es wurde gelöst, indem der von Grid genannte Rasierer Code nicht verwendet wurde.

Andere Tipps

Ok, ich habe es für mich mit den folgenden zum Laufen gebracht

 @Html.Grid(Model.Result).Columns(column => {
    column.For(u => u.Name).Named("Name");
    column.For(u => u.Code).Named("Code");
    column.For(u => Html.ActionLink("Edit", "Edit", new { id = u.Id })).Named("Edit");

Sie können eine benutzerdefinierte Spalte durchführen, um das zu erhalten, was Sie wollen:

@Html.Grid(Model).Columns(column => {
  column.Custom(
    @<div>
      <em>Hello there</em>
      <strong>@item.Name</strong>
    </div>
   ).Named("Custom Column");
})

Aus: Mvccontrib grid benutzerdefinierte Säulen (Rasiermesser)

Ich habe das getan, als ich einige .aspx -Seiten auf Rasiermesser portierte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top