jqGrid-扩展以实现一致性
我想将jqGrid用于很多只有一小部分特定于应用程序的列类型的网格,并且我想创建一种方法来强制实现一致性。例如,我希望显示行的符合性状态的所有列都具有特定格式、以特定方式对齐、具有特定的搜索选项等。因此,不要像这样使用colmodel条目:jqGrid-扩展以实现一致性,jqgrid,Jqgrid,我想将jqGrid用于很多只有一小部分特定于应用程序的列类型的网格,并且我想创建一种方法来强制实现一致性。例如,我希望显示行的符合性状态的所有列都具有特定格式、以特定方式对齐、具有特定的搜索选项等。因此,不要像这样使用colmodel条目: { name: 'ABC', width: 80, align: 'center', stype: "select", searchoptions: { value: "1:Compliant;0:Not Compliant"}
{ name: 'ABC', width: 80, align: 'center', stype: "select",
searchoptions: { value: "1:Compliant;0:Not Compliant"} }
{ name: 'ABC', width: 80, mytype: compliancestatus }
我想要一个这样的:
{ name: 'ABC', width: 80, align: 'center', stype: "select",
searchoptions: { value: "1:Compliant;0:Not Compliant"} }
{ name: 'ABC', width: 80, mytype: compliancestatus }
其中compliancestatus是我要编写的函数
不修改jqGrid源代码,这种事情可能发生吗?如果是这样,有人能给我举一个这种扩展类型的例子吗?因为jqGrid 3.8.2是受支持的列模板 例如,您可以定义
var compliancestatus = {
width: 80,
align: 'center',
stype: "select",
searchoptions: { value: "1:Compliant;0:Not Compliant" }
};
cmTemplate: { align: 'center' }
在可视范围内的某个地方,然后仅在colModel中使用
在模板中,可以包含任何参数。如果列定义具有相同的属性但具有相同的值,如
{ name: 'ABC', width: 100, template: compliancestatus }
在这种情况下,将使用colModel width:100中的值
我以前有一段时间使用过这个功能,我自己也在大量使用它。例如,我有许多网格,其中有许多带有复选框的列。在这种情况下,我使用以下模板:
mySettings.templateCheckbox = {
formatter: 'checkbox', align: 'center', width: 20,
edittype: 'checkbox', editoptions: { value: "1:0" },
stype: "select", searchoptions: { sopt: ['eq', 'ne'], value: ":Any;1:Yes;0:No" }
};
以同样的方式,我定义了许多其他模板,它们减少了网格的代码并改进了对通用网格样式的管理
如果要更改所有列的一些常见默认设置,可以使用jqGrid的cmTemplate参数。比如说
var compliancestatus = {
width: 80,
align: 'center',
stype: "select",
searchoptions: { value: "1:Compliant;0:Not Compliant" }
};
cmTemplate: { align: 'center' }
您可以将其用作附加参数,也可以将其设置为与的任何其他默认参数相同
$.extend($.jgrid.defaults, {
cmTemplate: { align: 'center' }
});
阅读有关列模板的更多信息。Perfect。我完全错过了。谢谢。@RonR:不客气!如果您的问题得到解决,您可以将答案标记为。我忘记了一些事情:在colmodel{name:'ABC',template:compliancestatus}中使用此选项,我还希望加强列标题对齐的一致性。我认为我必须为标题添加以下内容到链:.jqGridsetLabel,ABC,{text align:center}但即使我在css类中定义对齐方式并执行此操作:.jqGridsetLabel,ABC,compliancestatusClass,这仍然需要我在两个位置正确设置对齐方式。理想情况下,有一个未记录的jqGrid选项aligningheadingswithdata:true`@RonR:没有任何属性可以定义列标题的对齐方式。关于setLabel,请参见可以设置对齐方式。如果需要,可以枚举colModel并根据列的对齐方式设置所有列标题的对齐方式。谢谢。这看起来很容易。