我在用ExtJs来做一个GridPanel 我从web service 传出一个已转成json格式 的 datetime 类型的数据. 显示为 /Date(1262577888997)/ 的样子.. 我应该怎样做才能正确显示时间呢?? 以下是代码.
Store
var myStore = new Ext.data.JsonStore({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: 'PttGetData.asmx/qryCancelableById',
headers: { 'Content-type': 'application/json' }
}),
root: 'd',
fields: ['TermId',
{ name: 'MsgTime' },
'CardId', 'SimNo', 'ShiftSN', 'CmdType', 'CmdMsg', 'IsSucc', 'T_isRec', 'T_IsCommit',
{ name: 'SendTime'},
{ name: 'RecvTime'},
{ name: 'CommitTime'}]
});
GridPanel
var grid = new Ext.grid.GridPanel({
store: myStore,
columns: [
{ header: "信息收发时间", dataIndex: 'MsgTime' },
{ header: "终端号", dataIndex: 'TermId', sortable: true },
{ header: "车牌号", dataIndex: 'CardId', sortable: true },
{ header: "终端sim卡号", dataIndex: 'SimNo', sortable: true },
{ header: "作业流水号/航次号/班次号", dataIndex: 'ShiftSN', sortable: true },
{ header: "命令类型", dataIndex: 'CmdType', sortable: true },
{ header: "命令信息内容", dataIndex: 'CmdMsg', sortable: true },
{ header: "收发是否成功", dataIndex: 'IsSucc', sortable: true },
{ header: "终端是否收到", dataIndex: 'T_isRec', sortable: true },
{ header: "终端是否人工确认", dataIndex: 'T_IsCommit', sortable: true },
{ header: "下发时间", dataIndex: 'SendTime', sortable: true },
{ header: "接收时间", dataIndex: 'RecvTime', sortable: true },
{ header: "人工确认时间", dataIndex: 'CommitTime', sortable: true }
],
sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
viewConfig: {
forceFit: true
},
height: 210,
width: 1024,
split: true,
region: 'north' });谢谢
Store
var myStore = new Ext.data.JsonStore({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: 'PttGetData.asmx/qryCancelableById',
headers: { 'Content-type': 'application/json' }
}),
root: 'd',
fields: ['TermId',
{ name: 'MsgTime' },
'CardId', 'SimNo', 'ShiftSN', 'CmdType', 'CmdMsg', 'IsSucc', 'T_isRec', 'T_IsCommit',
{ name: 'SendTime'},
{ name: 'RecvTime'},
{ name: 'CommitTime'}]
});
GridPanel
var grid = new Ext.grid.GridPanel({
store: myStore,
columns: [
{ header: "信息收发时间", dataIndex: 'MsgTime' },
{ header: "终端号", dataIndex: 'TermId', sortable: true },
{ header: "车牌号", dataIndex: 'CardId', sortable: true },
{ header: "终端sim卡号", dataIndex: 'SimNo', sortable: true },
{ header: "作业流水号/航次号/班次号", dataIndex: 'ShiftSN', sortable: true },
{ header: "命令类型", dataIndex: 'CmdType', sortable: true },
{ header: "命令信息内容", dataIndex: 'CmdMsg', sortable: true },
{ header: "收发是否成功", dataIndex: 'IsSucc', sortable: true },
{ header: "终端是否收到", dataIndex: 'T_isRec', sortable: true },
{ header: "终端是否人工确认", dataIndex: 'T_IsCommit', sortable: true },
{ header: "下发时间", dataIndex: 'SendTime', sortable: true },
{ header: "接收时间", dataIndex: 'RecvTime', sortable: true },
{ header: "人工确认时间", dataIndex: 'CommitTime', sortable: true }
],
sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
viewConfig: {
forceFit: true
},
height: 210,
width: 1024,
split: true,
region: 'north' });谢谢
renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒') }
这样子改不了.. 我试了很多次.. 不知道原因..
可能是由于我从web service回传回来的是这样的格式 /Date(1262577888997)/ 后来..我看了一些老外的做法. 写了一个function出来 function rendeDate(record) {
return eval("new " + record.substr(1, record.length - 2)).toLocaleString();
}然后调用.
colums:[
{ header: "信息收发时间", width: 300, renderer: rendeDate, dataIndex: 'MsgTime' }
]
这样子就解决了..
===============================================================================不过现在有一个新的问题.. 我先上代码.
/// <reference path="vswd-ext_2.2.js" />
Ext.onReady(function() {
var gridDtl;
var myStore = new Ext.data.JsonStore({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: 'PttGetData.asmx/qryCancelableById',
headers: { 'Content-type': 'application/json' }
}),
root: 'd',
fields: ['TermId', 'MsgTime', 'CardId', 'SimNo', 'ShiftSN', 'CmdType', 'CmdMsg', 'IsSucc', 'T_isRec', 'T_IsCommit', 'SendTime', 'RecvTime', 'CommitTime']
}); var grid = new Ext.grid.GridPanel({
store: myStore,
columns: [
{ header: "信息收发时间", width: 300, renderer: rendeDate, dataIndex: 'MsgTime' },
{ header: "终端号", width: 150, dataIndex: 'TermId', sortable: true },
{ header: "车牌号", width: 150, dataIndex: 'CardId', sortable: true },
{ header: "终端sim卡号", width: 200, dataIndex: 'SimNo', sortable: true },
{ header: "作业流水号", width: 200, dataIndex: 'ShiftSN', sortable: true },
{ header: "命令类型", width: 150, dataIndex: 'CmdType', sortable: true },
{ header: "命令信息内容", width: 200, dataIndex: 'CmdMsg', sortable: true },
{ header: "收发是否成功", width: 200, dataIndex: 'IsSucc', sortable: true },
{ header: "终端是否收到", width: 200, dataIndex: 'T_isRec', sortable: true },
{ header: "终端是否人工确认", width: 200, dataIndex: 'T_IsCommit', sortable: true },
{ header: "下发时间", width: 300, renderer: rendeDate, dataIndex: 'SendTime', sortable: true },
{ header: "接收时间", width: 300, renderer: rendeDate, dataIndex: 'RecvTime', sortable: true },
{ header: "人工确认时间", width: 300, renderer: rendeDate, dataIndex: 'CommitTime', sortable: true }
],
tbar: [{
text: '核销',
handler: OnCav
}, '-'],
sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
viewConfig: {
forceFit: true
},
height: 210, split: true,
region: 'north' });
var ct = new Ext.Panel({
renderTo: 'CAV',
frame: true,
title: 'Book List',
width: 1280,
height: 400,
layout: 'border',
items: [grid]
});
function rendeDate(record) {
return eval("new " + record.substr(1, record.length - 2)).toLocaleString();
} function OnCav() { Ext.Ajax.request({
url: 'PttGetData.asmx/PttCmdCancel',
success: function(response, action) {
method: 'POST'
Ext.MessageBox.alert('核销结果', response.responseText);
document.location('www.google.com');
},
params: { termId: 'a' }
});
};}); 请高手帮我看看..我这边有什么写错的?? 老是提示"例外被抛出且未被接住" 还有什么"对象不支持此操作"
你使用eval的时候,改下这样试试var str="new " + record.substr(1, record.length - 2);
return eval("(" +str+")").toLocaleString();
http://blog.csdn.net/liu_moyan/archive/2009/12/17/5023536.aspx
return eval("new " + record.substr(1, record.length - 2)).toLocaleString()+")");
}
日期这个我已经解决了..
我现在要解决 GridPanel不能显示数据的问题.
在grid中{
text: '操作时间',
dataIndex: 'optime',
width: 100,
renderer: renderDateTime// 把这一句加上就可以了
}