2010-12-06 88 views
3

我試圖在jqgrid plugin中使用tabletogrid函數。我的問題是,如果我刪除表中的一行,那麼表格單元的width屬性就會消失。但是,如果最後一行被刪除,則刪除操作按預期發生。 例如,這裏是我的HTML表格 -jqGrid TableToGrid刪除一行

<table id="item_table"> 
    <thead> 
     <tr> 
      <th width="60">Date</th> 
      <th width="15">Icon</th> 
      <th width="80">Shop</th> 
      <th width="15">Delete</th> 
     </tr> 
    <thead> 
    <tbody> 
     <tr> 
      <td width="60" class="col_date"> 
       <div class="date"></div> 
      </td> 
      <td width="15" class="col_icon"> 
       <div class="icon"></div> 
      </td> 
      <td width="80" class="col_shop"> 
       <div class="shop"></div> 
      </td> 
      <td width="25" class="col_delete"> 
       <div class="delete"></div> 
      </td> 
     </tr> 
    </tbody> 
</table> 

然後我使用Ajax代碼的內容添加到表。之後,這是我的jqgrid設置。

jQuery.extend(jQuery.jgrid.defaults, { 
     caption: "Shops", 
     autowidth: true, 
     height: 24, 
     hidegrid: false, 
     onCellSelect: function(rowid, index, contents, target) { 
      if (index == 3) { 
       $('#item_table tr:eq(' + rowid + ')').remove(); 
      } 
     }, 
     colModel:[ 
      { name: 'date', index: 'date', width: 0, resizable: false }, 
      { name: 'icon', index: 'icon', width: 0, resizable: false }, 
      { name: 'shop', index: 'shop', width: 0, resizable: false }, 
      { name: 'delete', index: 'delete', width: 0, resizable: false } 
     ] 
    }); 
    tableToGrid("#item_table", { 
     colNames: ['Date', '', 'Shop', 'Delete'] 
    }); 

刪除操作會導致width屬性消失。這是爲什麼發生?

網格細胞得到顯示的是這樣的...

<TD style="WIDTH: 80px" title="" role=gridcell><DIV class=shop></DIV></TD> 

如果刪除除最後一行的任何行,變成這樣的細胞....

<TD title="" role=gridcell><DIV class=shop></DIV></TD> 

寬度屬性被刪除。我在這裏錯過了什麼?

回答

16

將錶轉換爲jqGrid後,您可以使用jqGrid的任何methods。刪除jqGrid中行的標準方法是delRowData方法。

$('#item_table').jqGrid('delRowData',rowid); 

要使網格的高度自動調整,您可以添加選項height:'100%'。對於colModel中的所有列(其中title屬性不應創建)的列定義title:false的另一個設置對您也有幫助。

還有一點小話。請看formatter:'actions'custom formatter,它非常易於使用,但允許您創建HTML代碼片段作爲單元格內容。所有的功能都可以作爲'刪除'coulmn的交互字符串。

1

gridPreSeleccion:ID電網

這個電網是多選真正與事件的jQuery

//Funcion que elimina los multiselect de un jqgrid seleccionados 
function eliminarSeleccionados() { 
    var idsContribuyentesSelect = jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow'); 
    if(idsContribuyentesSelect.length == 0) { 
    jQuery.MessageAlertSath("Es necesario seleccionar una fila.") 
    } else { 
    var ids = jQuery("#gridPreSeleccion").jqGrid('getDataIDs'); 
    var a = ids.length; 
    var j = 0; 
    while(j == 0) { 
     if(jQuery("#gridPreSeleccion").jqGrid('getGridParam', 'selarrrow').length <= 0) { 
     j = 1; 
     } else { 
     for(var i = 0; i < a; i++) { 
      if(idsContribuyentesSelect[0] == ids[i]) { 
      jQuery('#gridPreSeleccion').delRowData(ids[i]); 
      break; 
      } 
     } 
     } 
    } 
    } 
} 
通話