jqGrid TableToGrid删除一行

时间:2010-12-06 09:00:15

标签: jquery jqgrid

我正在尝试在jqgrid plugin中使用平板电脑功能。我的问题是如果我删除表中的一行,那么表格单元格的宽度属性就会消失。但是如果删除了最后一行,则删除操作按预期发生。 例如,这是我的html表 -

<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>

Width属性被删除。我在这里错过了什么?

2 个答案:

答案 0 :(得分:16)

将表格转换为jqGrid后,您可以使用任何methods的jqGrid。删除jqGrid中行的标准方法是delRowData方法。

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

要使网格的高度自动调整,您可以添加选项height:'100%'title:false中所有列的列定义colModel的另一个设置(不应创建title属性)对您也有帮助。

还有一个小小的评论。查看formatter:'actions'custom formatter,它非常易于使用,但允许您创建HTML代码片段作为单元格内容。所有的功能都可以是'删除'库存的内容。

答案 1 :(得分:1)

gridPreSeleccion:id grid

这个网格是多选真的 使用事件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;
          }
        }
      }
    }
  }
}