通常在jqGrid编辑表单中,每个字段都在一个单独的行上,左边是标签,右边是字段输入。但是,在我们的某些网格中,我们有一些字段,用户希望在编辑表单中彼此相邻,因为它们在逻辑上是相关的,例如,四分之一和一年在一行,左边有一个标签。
我认为可行的唯一方法是使用带edittype:'custom'
的自定义格式化程序,在这种情况下,分别在加载/保存时必须拆分/合并两个或多个字段。
采用这种可怕且乏味的方法,是否有更好/更简单的方法来做到这一点?
答案 0 :(得分:1)
您可以使用beforeShowForm或afterShowForm修改表单。
您应该考虑将表单数据放在<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}}单元格,并将所有输入字段和标签放在单元格内。在我看来,编辑表格将保持工作没有任何问题。
因此,您可以在编辑/添加表单中进行大量修改。