none
Llenar WebGrid con un dataset RRS feed

Respuestas

  • hola

    no uses datatable si vas a trabajar con asp.net mvc, eso ya es anticuado, usa clases que tu definas como modelos de la view

    WebGrid en MVC 3, paso a paso

    es mejor aun si utilizas entity framework

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 18 de diciembre de 2017 12:54
  • Hola. Al ser un DataTable un objeto dinámico, necesitarías usar un ExpandoObject.

    @model DataTable
    
    @{
        var columns = Model.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
        var s = Model.Rows.Cast<DataRow>().Select(r => new System.Dynamic.ExpandoObject().With(columns.ToDictionary(c => c, c => r[c])));
        WebGrid grid = new WebGrid(s, rowsPerPage: 10);
      }

    Y tener un método de extensión With() 

    public static object With(this IDictionary<string, object> obj, IDictionary<string,object> additionalProperties)
    {
      foreach (var name in additionalProperties.Keys)
        obj[name] = additionalProperties[name];
      return obj;
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 17 de diciembre de 2017 21:11
    Moderador

Todas las respuestas

  • Hola. Al ser un DataTable un objeto dinámico, necesitarías usar un ExpandoObject.

    @model DataTable
    
    @{
        var columns = Model.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
        var s = Model.Rows.Cast<DataRow>().Select(r => new System.Dynamic.ExpandoObject().With(columns.ToDictionary(c => c, c => r[c])));
        WebGrid grid = new WebGrid(s, rowsPerPage: 10);
      }

    Y tener un método de extensión With() 

    public static object With(this IDictionary<string, object> obj, IDictionary<string,object> additionalProperties)
    {
      foreach (var name in additionalProperties.Keys)
        obj[name] = additionalProperties[name];
      return obj;
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    domingo, 17 de diciembre de 2017 21:11
    Moderador
  • hola

    no uses datatable si vas a trabajar con asp.net mvc, eso ya es anticuado, usa clases que tu definas como modelos de la view

    WebGrid en MVC 3, paso a paso

    es mejor aun si utilizas entity framework

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 18 de diciembre de 2017 12:54