2010-12-06 8 views
3

私はjqgrid pluginでtabletgrid関数を使用しようとしています。私の問題は、テーブルの行を削除すると、表のセルの幅属性が消えるだけです。しかし、最後の行が削除された場合、削除操作は期待通りに行われます。例えば は、ここに私の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'] 
    }); 

削除操作を実行すると、幅属性が消えます。なぜこうなった?

グリッド内のセルがこのように表示されます...

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

最後の行以外の任意の行を削除した場合、細胞は、このようになる....

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

width属性削除されます。私はここで何が欠けていますか?

答えて

16

表をjqGridに変換した後は、methodsのjqGridを使用できます。 jqGridの行を削除する標準的な方法は、delRowDataメソッドです。

グリッドの高さを自動的に調整できるようにするには、オプションheight:'100%'を追加します。 colModelのすべての列の列定義title:falseのもう1つの設定は、title属性を作成すべきではありません。

もう少し小さな発言。 formatter:'actions'またはcustom formatterを見てください。これは非常に使いやすいものですが、セルコンテンツとしてHTMLコードの断片を作成することができます。すべての機能は、 'delete' 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; 
      } 
     } 
     } 
    } 
    } 
} 
です
関連する問題