Ancho de la columna editable de Jqgrid según su contenido

He incluido el código proporcionado por Oleg en este enlace . Funciona perfectamente para establecer el tamaño de la columna según su contenido. El único problema al que me enfrento ahora es que cuando configuro “editble: true” para un valor de columna, el intervalo también se muestra junto con el elemento. Este intervalo se agregó a las celdas individuales para adquirir el ancho del texto. presente en las celdas. Ahora para editar la columna, el valor de la columna que se muestra es:

text

Por favor ayuda.

Tienes razón. Ahora me parece que sería más efectivo incluir el ajuste solo temporal para medir el ancho de la celda. En el caso de que el intervalo de envoltura no permanezca en las celdas y los problemas que usted describió nunca parecerán más.

La demostración proporciona una versión modificada del comportamiento de implementación “autowidth” en la cuadrícula. Utiliza el siguiente código

 var autosizeColumn = function (iCol) { var $this = $(this), iRow, rows, row, colWidth, cm = typeof iCol === "string" ? $this.jqGrid("getColProp", iCol) : $this.jqGrid("getGridParam", "colModel")[iCol], getOuterWidth = function ($elem) { var $wrappingSpan, width; $elem.wrapInner(""); $wrappingSpan = $elem.find(">.mywrapping"); width = $wrappingSpan.outerWidth(); $elem.html($wrappingSpan.html()); return width; }; if (cm == null || cm.hidden) { return; // don't change the width of hidden columns } colWidth = getOuterWidth($(this.grid.headers[iCol].el).find(">div")) + 25; // 25px for sorting icons for (iRow = 0, rows = this.rows; iRow < rows.length; iRow++) { row = rows[iRow]; if ($(row).hasClass("jqgrow")) { colWidth = Math.max(colWidth, getOuterWidth($(row.cells[iCol]))); } } $this.jqGrid("setColWidth", iCol, colWidth); }, autosizeColumns = function () { var $this = $(this), iCol, colModel = $this.jqGrid("getGridParam", "colModel"), n = $.isArray(colModel) ? colModel.length : 0; for (iCol = 0; iCol < n; iCol++) { autosizeColumn.call(this, iCol); } }; $grid.bind("jqGridAfterLoadComplete jqGridRemapColumns jqGridInlineAfterSaveRow", autosizeColumns); 

ACTUALIZADO . Alternativamente, se puede usar el complemento autoWidthColumns que jQuery.jqGrid.addColumn.js aquí como jQuery.jqGrid.addColumn.js . En el caso de que solo se necesita incluir jQuery.jqGrid.setColWidth.js y jQuery.jqGrid.autoWidthColumns.js y crear la cuadrícula usando $("#gridid").jqGrid("autoWidthColumns").jqGrid({/*option*/}); en lugar del estándar $("#gridid").jqGrid({/*option*/}); .

La demostración utiliza el complemento autoWidthColumns .