Hola ^_^ tengo el siguiente problema:

Tengo una vista parcial con un jqGrid en él…y yo uso bPopup para mostrar la vista parcial como un cuadro de diálogo.

Ahora hay una lista de los elementos en el lado de la vista. Al hacer clic en un elemento…el cuadro de diálogo que se mostrará con la tabla que muestra los datos relativos a la respuesta…

Ahora el problema es que al hacer clic en los siguientes elementos; los datos del primer elemento clic es todavía mostraba…así que pensé que simplemente llamando

$("#ListDialogTable").jqGrid("clearGridData");

va a borrar los datos y me permita mostrar los nuevos datos…pero ahora cuando trato de mostrar el cuadro de diálogo en el posterior clics…sólo los encabezados de tabla se muestran…no hay datos!

Las ideas y la ayuda de este apreciado 🙂
D

P. s. algunas código; el siguiente método es llamado por el método de ShowListDialog

function PopulateTable(model) {
    $("#ListDialogTable").jqGrid("clearGridData");
    $("#ListDialogTable").jqGrid({
        jsonReader:
        {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: true,
            cell: "cell",
            id: "id"
        },

        colNames: model.columnN,
        colModel: model.columnM,

        datatype: "jsonstring",
        datastr: model.columnD,

        sortname: model.sortName,
        sortorder: "asc",

        autowidth: true,
        celledit: false,
        gridview: true,
        height: "auto",
        hoverrows: false,
        shrinkToFit: true,
        rowNum: 999,
        viewrecords: true
    });
}
  • Puedes publicar algo de HTML y código javascript? Es más útil para nosotros para ayudarle
  • el código añadido ^_^ lo siento formato no incluye la primera y la última línea de código…
  • Este código es ejecutado cada vez que el diálogo debe ser mostrado…así que no sé si la ejecución se tiene un mal efecto o no…
  • Para formatear el fragmento de código que usted seleccione el código y haga clic en «{}» elemento en la barra de herramientas. No mucho más como insertar 4 espacios en blanco al principio de cada línea e insertar fila vacía antes y después de que el texto seleccionado. Si inserta los espacios en blanco de forma manual, usted tendrá los mismos resultados.
InformationsquelleAutor Dieter | 2011-05-06

4 Comentarios

  1. 12

    Puedes descargar la jqGrid mediante el siguiente método:

    jQuery("#tableId").jqGrid("clearGridData");

    • Corrección: se puede borrar el jqGrid mediante el siguiente método:
  2. 3

    No publicado de cómo el elemento con id="ListDialogTable", que se utiliza para la red, se crean. Será construido de forma dinámica o crea una vez y se utiliza el tiempo de muchos? Por otra parte no está claro si el model.columnN y model.columnM se puede cambiar entre las llamadas o no. Así que sólo puedo adivinar.

    Probablemente usted necesita utilizar GridUnload método que permite para recrear la cuadrícula incluyendo todos sus elementos, incluidos los encabezados de columna y el localizador contienen. La demo de la respuesta demostrar cómo funciona.

    • PAVOR!!!Gracias! $(«#ListDialogTable»).jqGrid(«GridUnload»); hizo el truco. Todo lo que necesitaba hacer era llamar a la anterior línea de código en una función enlazada al evento click del botón cerrar del cuadro de diálogo ^_^
  3. 2

    Puede utilizar jqgrid del GridUnload método

    $("#tableId").jqGrid("GridUnload")

    Esto va a descargar toda la rejilla y le permitirá cargar los nuevos datos en la red.

    • no, no te permite cargar nuevos datos sobre la rejilla. usted necesidad de volver a crear la cuadrícula de la primera. ver Oleg respuesta.
    • No funciona – GridUnload método no está definido el error
  4. 1

    He mismos temas, porque yo estoy usando una versión antigua de jqGrid y esta es mi solución para esto:

    jQuery("#grid").clearGridData(true).trigger("reloadGrid");

Dejar respuesta

Please enter your comment!
Please enter your name here