我从WCF服务获取JSON数据,如下格式。然后我将这些数据绑定到handsOnTables。
{"d":[
{ "__type":"InitData:#company.ReductionData",
"Owner":"test9",
...
...
"StartDate":"\/Date(1366848000000+0000)\/",
"Risks":"test9",
}] }
$(function () {
var $value = $("#Body_hiddenClientId");
// alert($value.val());
var $container = $("#dataTable");
$container.handsontable({
contextMenu: true,
startRows: 1,
minRows: 1,
colHeaders: true,
stretchH: 'all',
columns: [
{ data: 'Owner' },
...
....
{ data: 'StartDate', type: 'date', dateFormat: 'mm/dd/yy' },
{ data: 'Risk' }
]
});
var handsontable = $container.data('handsontable');
$.ajax({
url: "/EditInitiatives.svc/GetGridData",
data: "session=" + $value.val(),
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$container.handsontable('loadData', res.d);
},
error: function (error) {
alert("Error: " + error.responseText);
}
});
});
我不知道如何转换为'mm/dd/yy'
格式?在代码中转换格式的位置?
答案 0 :(得分:0)
handsontable 期望字符串格式化日期。 你应该把它转换成适当的形式。
尝试这样的事情:
改变这个:
...
success: function (res) {
$container.handsontable('loadData', res.d);
},
...
用这个:
...
success: function (res) {
for(var i in res.d) {
// get the milliseconds from your string "StartDate":"\/Date(1366848000000+0000)\/",
// and create new Date object
var date = new Date(+(res.d[i]['StartDate'].match(/\d+/i)));
// then put it back with format mm/dd/yy
res.d[i]['StartDate'] = (date.getMonth() + 1) + '-' + date.getDate() + date.getFullYear();
}
$container.handsontable('loadData', res.d);
},
...
答案 1 :(得分:0)
您也可以在转换服务器端将其格式化为所需的字符串。以下是我在使用C#时使用WCF服务的一些代码:
var adList = someSource
.Select(ad => new
{
WhenTransacted = ad.WhenTransacted.HasValue ? ad.WhenTransacted.Value.ToString("MM/dd/yy") : string.Empty,
Amount = ad.Amount,
Reference = ad.Reference,
})
.ToList();
return JsonConvert.SerializeObject(adList);