根据设置在DataField的数据类型和范围,将值储存到DataSet。 数据字段的数据类型已被定义在ValueType常数中,并且分别应对String、Number、Boolean等JavaScript的基本类型。 处理日期的值,将会被储存为JavaScript的Date对象。 而且,undefined值可以被储存在所有数据类型中。
特别是,当DATETIME字段通过GridDataSet.getValue等方法而请求值时,将会直接传递储存在DataSet的Date对象。 绝对不能直接变更从获取值的一方返回的Date对象。 而且,也不能变更调用数据组API时,被传递为参数的Date对象。 也就是说,在网格模块中,Date对象应该被视为只读的值。
有关数据字段的详细内容,请参考数据字段帮助主题。
从SMART datagrid格的1.3.5版本开始,可以创建OBJECT类型的数据字段。 在Object字段中,可以直接储存JSON对象。 但是,数据组不会干涉所储存的对象结构,而只是确认对象本身是否发生变更,并且触发相关事件。
连接在Object字段的网格数据单元格中,基本上将会显示指定在相关字段的keyPath或从keyCallback属性中返回的值, 并且这些返回值将会被用于列排序以及Excel导出等。
另外,用户不能在这种数据单元格直接修改值,而是需要使用另行提供的输入方式, 并且通过GridDataSet.setValue或setValueEx等而进行储存。 这时,只能在对象级别,确认储存在数据组的JSON对象的变更。 也就是说,即使获取储存在数据组的对象 (getValue),变更相关属性后再进行储存 (setValue),基本上也不会触发变更事件。 只有发生对象本身的变更时,才会触发变更事件。
当储存数据时,如果不是JSON对象,就会调用JSON.parse(),而如果发生问题并且输入值为字符串,就会抛出例外。
当复制值到剪贴板时,如果没有在相关列设置copyCallback,就会调用JSON.stringify()并转换为字符串。 而且,为实现粘贴,必须要设置pasteCallback。
当通过GridDataSet.appendRow或GridDataSet.setValue等储存值时,可以传递不同于字段数据类型的字符串等,而这时就需要转换类型。 有关类型转换储存,请参考DataField.datetimeFormat和booleanFormat帮助主题。
类似于在DataSet中输入或输出值的方式,在网格数据单元格显示值时,可以使用户更简单读取,也可以替代实际值而显示更具意义的其他值。 这时,将会根据各个数据类型,使用GridStyles.numberFormat、booleanFormat、datetimeFormat属性。 有关详细格式说明,请参考相关帮助主题。
如同显示格式,当用户通过单元格编辑器而输入值时, 可以通过CellEditor.booleanFormat和datetimeFormat,将所输入的文本转换为各个字段的数据类型的格式。