我正在尝试在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属性被删除。我在这里错过了什么?
答案 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)
这个网格是多选真的 使用事件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;
}
}
}
}
}
}