如何在jqGrid编辑表单中的同一行上有多个字段?

时间:2011-07-25 16:55:16

标签: jquery jqgrid

通常在jqGrid编辑表单中,每个字段都在一个单独的行上,左边是标签,右边是字段输入。但是,在我们的某些网格中,我们有一些字段,用户希望在编辑表单中彼此相邻,因为它们在逻辑上是相关的,例如,四分之一和一年在一行,左边有一个标签。

我认为可行的唯一方法是使用带edittype:'custom'的自定义格式化程序,在这种情况下,分别在加载/保存时必须拆分/合并两个或多个字段。

采用这种可怕且乏味的方法,是否有更好/更简单的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用beforeShowFormafterShowForm修改表单。

您应该考虑将表单数据放在<table> id "TblGrid_"+grid_id之内tr_myCol。表的行包含'myCol'之类的ID,其中名称name是来自colModel的相应网格列的<tr>属性的值。因此,您可以使用新的<td>元素附加$("#"+frmtb+" > tbody > tr > td > .FormElement").each(function(i) { ... switch ($(this).get(0).type) { ... case "text": postdata[this.name] = $(this).val(); ... } 元素以及您需要的其他信息。因为你应该增加表单width属性的值。

The old answer可能对您有所帮助。

UPDATED :如果你检查jqGrid的代码,你会在grid.formedit.js的getFormData中找到以下代码片段:

<td>

因此,输入,选择和其他输入元素保留在表单的同一表的"invdate"单元格内部的位置非常重要。例如, <input class="FormElement" name="invdate" type="text"> 列的输入元素将具有(以简化形式)

<tr>

所以它已经是你需要的所有领域。您可以根据需要重新排序输入字段。您可以添加其他<td><tr>元素或将其删除。例如,您可以将表格缩小为一个<td>和一个{{1}}单元格,并将所有输入字段和标签放在单元格内。在我看来,编辑表格将保持工作没有任何问题。

因此,您可以在编辑/添加表单中进行大量修改。