2011-01-23 15 views
5

Actualmente estoy trabajando en una red tridimensional MVC 3, en una de las columnas deseo tener un botón, lo he logrado al poner el siguiente código en la vista.MVC 3 Columna Webgrid

@grid.GetHtml(columns: 
      grid.Columns(
      grid.Column("ID", "id", canSort: true), 
      grid.Column("Surname", "surname", canSort: true), 
      grid.Column("Forenames", "forename", canSort: true), 
      grid.Column(format: @<input type="button" value="View"/>)), 
      headerStyle: "header", 
      alternatingRowStyle: "alt", 
      htmlAttributes: new { id = "DataTable" } 
      ) 

Sin embargo deseo para crear la rejilla del lado del servidor con el propósito de paginación, pero cuando pongo el código de abajo en la acción me sale un error de la columna para el botón.

var htmlString = grid.GetHtml(tableStyle: "webGrid", 
              headerStyle: "header", 
              alternatingRowStyle: "alt", 
              htmlAttributes: new { id = "DataTable" }, 
              columns: grid.Columns(
               grid.Column("ID", "id", canSort: true), 
               grid.Column("Surname", "surname", canSort: true), 
               grid.Column("Forenames", "forename", canSort: true),  
               grid.Column(format: @<input type='button' value='View'/>)                   
              )); 

El primer error es "Palabra clave, identificador o cadena esperada después del especificador literal: @".

¿Estoy utilizando el formato incorrecto en la columna del botón?

Respuesta

3

Parece que está intentando usar la sintaxis de Razor en su código subyacente. Pruebe algo como esto, utilizando una expresión lambda ...

gridColumn.Format = (item) => 
{ 
    return new HtmlString("<input type='button' value='View'/>"); 
} 
+0

Casi allí, era grid.Column (formato: (elemento) => {return new HtmlString ("");}) Gracias. – user415394

2

puede probar <text> etiqueta para la maquinilla de afeitar como esto;

grid.Column(format: @<text><input type='button' value='View'/></text>)