jqgrid允许将类型信息指定为colModel的一部分,例如
editrules:{required:true, number: true},
虽然这只影响验证,但检索所有行数据会很好 使用此信息。
jqGrid('getRowData')
将所有数据作为字符串
返回是否有可能将结果转换为类型信息(如果使用JSON在提交时使用JSON进行编码/解码,则应将数字:true的列转换为整数,以便在Web服务器端将其作为整数处理网格数据)。
答案 0 :(得分:0)
问题是jqGrid有关于数据类型的没有信息。有格式化程序,排序,编辑和搜索选项来构建编辑或搜索控件,验证选项等,但没有有关数据类型的信息。
此外,jqGrid在很多情况下接收输入数据作为字符串。即使JavaScript类型number
也不是真正想要的,因为JavaScript不具备integer
数据类型。
getRowData
方法使用unformatter来读取单元格的字符串内容。在某些情况下,例如,如果您使用datatype: 'local'
和data
参数填充网格,则输入的数据会保存在内部data
和_index
参数中,您可以使用获取有关单元格的类型信息的参数包含。
例如,如果您定义保存日期的列,则定义可以是以下
{ name: 'invdate', index: 'invdate', width: 80, align: 'center',
sorttype: 'date',
formatter: 'date', formatoptions: { newformat: 'd-M-Y' }, editable: true,
datefmt: 'd-M-Y',
editoptions: {
dataInit: function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
}, 100);
}},
editrules: {required: true, date: true},
searchoptions: {
sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'],
dataInit: function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showWeek: true,
showButtonPanel: true
});
}, 100);
}}}
您可以在多少个地方指定“约会”日期'类型。
我建议您使用列模板(有关详细信息,请参阅here)。在我为客户实现的项目中,我定义了(在一个常见的JavaScript文件中)一些模板,如dateTemplate
,并定义了网格中的列,如
{name: 'invdate', index: 'invdate', width: 80, template: my.dateTemplate}
其中my.dateTemplate
以简化形式定义,如
var my = {
dateTemplate: {
align: 'center',
sorttype: 'date',
formatter: 'date', formatoptions: { newformat: 'd-M-Y' }, editable: true,
datefmt: 'd-M-Y',
editoptions: {
dataInit: function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
}, 100);
}},
editrules: {required: true, date: true},
searchoptions: {
sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'],
dataInit: function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showWeek: true,
showButtonPanel: true
});
}, 100);
}}}
};
模板在数据类型中扮演密切角色的方式。如果需要,您可以根据getRowData
中的template
和colModel
参数编写自己的安全方法,以获取所需信息。