2010-05-12 14 views

Respuesta

17

Mira demostración http://trirand.com/blog/jqgrid/jqgrid.html

y selecciona en el árbol de la izquierda "nuevo en la versión 3.5" y luego "Resumen de pie de página Fila".

En el ejemplo, se estableció la opción footerrow : true, userDataOnFooter : true de jqGrid. A continuación, el servidor agrega el bloque userdata a los datos enviados de vuelta a jqGrid. Puede leer sobre userdata en http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data. Si userdata block hat properties corresponde a los nombres de columna de jqGrid, los datos se verán en la fila del pie de página.

Si necesita más información, debe escribir qué tipo de datos utiliza en jqGrid (JSON, XML, xmlstring, jsonstring, local, etc.) y qué tipo de servidor utiliza (PHP, ASP.NET MVC, WCF termina así sucesivamente).

actualización: Si utiliza JSON estándar de la cartografía de sus datos (no hay opción de JsonReader jqGrid) de mirada servidor como

{ 
    total: "xxx", 
    page: "yyy", 
    records: "zzz", 
    rows : [ 
    {id:"1", cell:["cell11", "cell12", "cell13"]}, 
    {id:"2", cell:["cell21", "cell22", "cell23"]}, 
     ... 
    ] 
} 

Así que el dato no tiene nombre de columnas de colModel. Si tiene, por ejemplo, una columna {name: 'price', ...} dentro de colModel y desea mostrar el precio total en la última fila de jqGid, debe definir footerrow: true, userDataOnFooter: true dentro de las opciones de jqGrid y su servidor debe generar datos como

{ 
    total: "xxx", 
    page: "yyy", 
    records: "zzz", 
    rows : [ 
    {id:"1", cell:["cell11", "cell12", "cell13"]}, 
    {id:"2", cell:["cell21", "cell22", "cell23"]}, 
     ... 
    ], 
    userdata: {price:1240.00} 
} 

Si utiliza otro jsonReader todas las estadísticas sin cambios. Lo único que puede definir es cambiar el nombre de "userdata" a otro nombre, pero el valor debe ser un objeto con el nombre de campo definido en colModel. Solo los valores de estos campos se mostrarán en la última fila de jqGrid.

+0

Uso JSON y coldfusion. –

+0

¡Muchas gracias! ¡Muy útil! –

+0

@Oleg: Otra gran respuesta de Oleg, una pregunta adicional, ¿cómo se obtiene la etiqueta "Totals" en la fila del pie de página como en la demostración que marcó arriba? – Mark

4

La respuesta anterior ayuda mucho. De todos modos aquí es la forma en que lo hice en MVC.Net:

Primera estos atributos sobre la definición de la retícula:

footerrow: true, userDataOnFooter: verdadera

En el resultado de la acción en el HttpPost:

 [HttpPost] 
     public ActionResult GetNewMembersByDate(string date1, string date2) 
     { 
      List<uspGetNewByDateResult> list =_reportsRepository.GetNewByDate(DateTime.Parse(date1), DateTime.Parse(date2)); 

      var amount = from p in list 
         select p.Quantity; 


      var jsonData = new 
      { 
       total = 1, 
       page = 1, 
       records = list.Count(), 
       userdata = new 
        { 
         Name = "Total:", 
         Quantity= amount.Sum().ToString() 
        }, 
       rows = (
         from row in list 
         select new 
         { 
          i = row.RowNumber, 
          cell = new[] { 
           row.RowNumber.ToString(), 
           row.Name, 
           row.Quantity.ToString() 
          } 
         }).ToArray() 

      }; 
      return Json(jsonData); 
     } 
Cuestiones relacionadas