Domanda

Codice di sotto grandi opere con motore di visualizzazione aspx, sto cercando di convertirlo in un rasoio, come di seguito. Il problema è che prima colonna non si presentano.

I convertire prima colonna in collegamento mediante il metodo di azione. Con il rasoio è (prima colonna) non è sempre resa in pagina a tutti. Resto della griglia è bene.

Quale potrebbe essere il problema?

@{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();}
È stato utile?

Soluzione

mi sono allontanato dal usando griglia MvcContrib in quanto non ha molto senso nella griglia che abbiamo.

In ogni caso problema era il codice in questione non restituisce html ma il codice mette direttamente nel flusso di risposta. E il codice per le colonne resi usando il rasoio che ha messo di codice in flusso ogni volta chiamato. così finisce per mettere in colonne flusso prima griglia viene reso.

E 'stato risolto non usando il codice rasoio in azione chiamato da griglia.

Altri suggerimenti

Ok ho ottenuto che funziona per me con il seguente

 @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");

Si può fare una colonna personalizzata per ottenere ciò che si vuole:

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

Da: Colonne MvcContrib griglia personalizzata (Razor)

Ho fatto questo quando porting alcune pagine aspx al rasoio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top