是否可以在编辑表单中对某些字段进行分组?
我想将一些字段分组在一起,给它们一个概括的名称,并给该组一些不同的背景颜色甚至边框,以便用户可以更轻松地导航。
假设我在colModel中有4个条目:
name
address
title
income
我想在编辑表单中显示它,例如:Personal:----------
| name [ ] |
| address [ ] |
-------------------
Business:----------
| title [ ] |
| income [ ] |
-------------------
假设属于“个人”组/类别的字段将具有浅绿色背景,而“业务”组中的字段将具有浅红色背景。困难在于有很多字段,我不想一一对应地给它们提供背景颜色。
如果有组,那么我什至可以使用一些折叠的jQuery插件来让用户隐藏一些组。
现在,我正在与custom_element一起在组中创建一些表,但是还没有成功。
解
正如 Tony 在jQuery Grid help forum:上指出的那样
当前,此功能不可用,或者最后添加了此类功能要求,以使用严重事件和编辑表单的结构知识。
我们计划在下一个主要版本中引入表单编辑中的模板。
因此,现在没有其他解决方案像 Oleg 提出的那样(感谢快速答复:)。
我用他的想法解决了(部分)我的任务。在编辑表单中添加包含表行的小节,最后逐行对行进行样式设置。
相关部分:
$('<tr class="FormData"><td class="CaptionTD ui-widget-content" colspan="2"><hr/></td></tr>').insertBefore('#tr_********,');
$("#tr_*******,#tr_*******").css("background-color","#def");
其中*******
是colModel中的列名称。添加边框并使其可折叠很麻烦,因此现在将跳过。
最佳答案
您可以做的几乎是在beforeShowForm回调中免费修改Add或Edit表单。我在the demo上演示了这个想法,我很快就为您提出了这个想法。该示例仅显示您可以做什么的示例:
对应的代码是
$.extend($.jgrid.edit, {
recreateForm: true,
beforeShowForm: function($form) {
$('<tr class="FormData"><td class="CaptionTD ui-widget-content" colspan="2">' +
'<hr/><div style="padding:3px" class="ui-widget-header ui-corner-all">' +
'<b>Invice information (all about money):</b></div></td></tr>')
.insertBefore('#tr_amount');
$('<tr class="FormData"><td class="CaptionTD ui-widget-content" colspan="2">' +
'<hr/><div style="padding:3px" class="ui-widget-header ui-corner-all">' +
'<b>Delivery information:</b></div></td></tr>')
.insertBefore('#tr_closed');
}
});
我仅设置
$.jgrid.edit
来更改“编辑”表单中的“添加”的beforeShowForm
。 'amount'
和'closed'
中使用的.insertBefore('#tr_amount'))
和insertBefore('#tr_closed')
是colModel
中的列名。