2013-09-26 52 views
3

我有一個第一列凍結的網格。當我移動水平滾動時,網格標題中的這一列被凍結,但在網格的主體中,所有列可以水平移動,第一列不會被凍結。我已經忘了我的代碼一百次了,沒關係。我的項目中沒有任何其他CSS或JavaScript,它發生在IE8,Firefox和Chrome中。我正在使用最新版本的jQgrid。凍結列中的jqGrid錯誤

這裏是我的代碼:

 
jQuery("#single").jqGrid({ 
        data : mydata, 
        datatype : "local", 
        height : 115, //Define el alto total del listado 
        width : 650, //Define el ancho total del listado 
        colNames : [ 'Index', 'Date', 'Code', 'Amount' ], //Nombres de las cabeceras de las columnas. 
        colModel : [ { 
         name : 'item_id', // Prop. name del modelo de datos 
         index : 'item_id', 
         width : 100, 
         sorttype : 'int', 
         align: 'center', 
         frozen:true 
        }, { 
         name : 'item_date', 
         index : 'item_date', 
         width : 450, 
         formatter : 'date', 
         formatoptions : { 
          newformat : 'd/M/Y' 
         }, 
         datefmt : 'd/M/Y', 
         align: 'center' 

        }, { 
         name : 'item_cd', 
         index : 'item_cd', 
         width : 400 
        }, { 
         name : 'amount', 
         index : 'amount', 
         width : 400, 
         formatter: "integer", //Define el tipo de dato. Imprescindible cuando queremos crear una celda de totales. 
         align: 'right',  //Alineación del texto dentro de la celda. 
         editrules : { 
          edithidden : true 
         }, 
         editoptions : { 
          /*disabled : 'disabled',*/ 
          size : '10', 
          maxlength : '8', 
         } 
        } ], 
        rowNum : 10, 
        rowTotal : 2000, 
        rowList : [ 5, 10, 20, 30 ], 
        loadonce : true, 
        mtype : "GET", 
        rownumbers : false, // Mostrar/ocultar el nº de fila. 
        rownumWidth : 40, // Ancho de la columna que muestra el nº de fila. 
        gridview : true, 
        pager : '#psingle', //Id de la capa que contiene el paginador. 
        sortname : 'item_id', // Columna inicial sobre la que realiza la ordenación. ini 
        viewrecords : true, // Muestra/Oculta el mensaje de: "Mostrando 1 de..." 
        sortorder : "desc", 
        editurl : './listado.html', 
        caption : "Tabla de datos editables", //Titulo del listado. 
        align: 'center', 
        //shrinkToFit : true, 
        footerrow : true, // Activa el pie del listado. Imprescible si se quiere visualizar. 
        userDataOnFooter : true, 
        edit : { 
         top : '100px', 
         left : '100px', 
         addCaption : "Add Record", 
         editCaption : "Modificar registro", 
         bSubmit : "Modificar", 
         bCancel : "Cancelar", 
         bClose : "Cerrar", 
         saveData : "Data has been changed! Save changes?", 
         bYes : "Yes", 
         bNo : "No", 
         bExit : "Cancel" 
        }, 
       }); 

       /* Botones de edición */ 
       jQuery("#single").jqGrid('navGrid', '#psingle', { 
        del : true, 
        add : true, 
        edit : true 
       }); 

       /* Activa la funcionalidad de las columnas fijas. Se usa en combinación con el atributo "frozen:true" 
        en la columna. */ 
       jQuery("#single").jqGrid('setFrozenColumns'); 

回答

0

問題的原因是jqGrid的的setFrozenColumns方法的錯誤。如果您從datatype : "local"填充jqGrid,或者如果在調用setFrozenColumns之前已經填充數據的網格爲,則方法setFrozenColumns工作不正確。作爲變通方法,您可以jQuery("#single").jqGrid('setFrozenColumns');後直接包含行

jQuery("#single").triggerHandler("jqGridAfterGridComplete"); 

。我多次描述了這個問題。在帖子here之後,bug在jqGrid的代碼github中修復(請參閱修復here)。因此,如果您使用新版本的jqGrid(版本高於當前版本4.5.2),則可以稍後刪除該行。

+0

非常感謝你!我一直在尋找解決這個問題的方法,但從來沒有找到答案,我非常擔心。 Sincerenly,非常感謝。 – cescari

+0

@cescari:不客氣!順便說一下,長期以來一直存在同樣的問題,但之前必須調用'_complete'函數(請參閱幾乎兩年前的[答案](http://stackoverflow.com/a/8620574/315935))。如果現在問題得到解決,'jQuery(「#single」)。triggerHandler(「jqGridAfterGridComplete」)'修復了問題,您可以[「接受」](http://meta.stackexchange.com/a/5235/147495)答案。 – Oleg

+0

是否有任何可能將列作爲jqGrid中的凍結列存在? @ Oleg –