我发现.net服务器端开发中存在问题。
.net方法如下:
<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)> Public Function fn_save(ByVal data As String)
前端js将调用此方法
fn_save(JSON.stringify(cell.getData()))
fn_save方法仅接收一个字符串。所以我必须对行数据进行字符串化。而且应该可以正常使用。
但是,如果该字段中没有值(没有编辑或清除等),则此字段值将是未定义的,如下所示。
JSON.stringify({content: undefined}); // return {} after stringify
因此对于此场景,我必须遍历对象并将undefined更改为空字符串或其他内容。
我应该这样吗?还是默认值将更改为null
而不是undefined
?感谢您的提前答复。
答案 0 :(得分:0)
将值设置为undefined在JSON中无效,这就是为什么在对它进行字符串化时在对象中丢失它的原因。
如果您将数据作为对象数组,则可以直接将其传递到Tabulator中,而无需首先对其进行字符串化处理
如果行数据中缺少一列,Tabulator只会将其设置为空值,然后继续进行下去,就不会在表的呈现中引起任何问题
答案 1 :(得分:0)
您可以尝试使用如下所示的循环,这将是克服此限制的简单方法
var string =
JSON.stringify(EditedData,function(k, v){return v === undefined ? null : v;});
这应该可以正常工作,任何空白字段都将在您的后端接受