我在用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'    });谢谢

解决方案 »

  1.   

    比如你的最后一行 { header: "人工确认时间", dataIndex: 'CommitTime', sortable: true,
       renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒') }
      

  2.   


    这样子改不了.. 我试了很多次.. 不知道原因..
    可能是由于我从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' }
            });
        };});  请高手帮我看看..我这边有什么写错的?? 老是提示"例外被抛出且未被接住" 还有什么"对象不支持此操作"
      

  3.   

      ajax时js抛出‘例外被抛出且未被接住’异常,根源在于JSON,传入了非法的json字符串所以才报的这个错误。
      你使用eval的时候,改下这样试试var str="new " + record.substr(1, record.length - 2);
    return eval("(" +str+")").toLocaleString();
      

  4.   

    EXT 日期转化
    http://blog.csdn.net/liu_moyan/archive/2009/12/17/5023536.aspx
      

  5.   

     function rendeDate(record) {
            return eval("new " + record.substr(1, record.length - 2)).toLocaleString()+")");
        }
      

  6.   

    sorry,看错了,ff下用firebug先看下有没有报错,没有的话,你只能在IE下把组件一个个删除,删除到哪个不报错了,就是那个出问题。
      

  7.   

    它说我var grid = new Ext.grid.GridPanel 缺少对象?怎 么回事?? 奇怪
      

  8.   


    日期这个我已经解决了.. 
    我现在要解决 GridPanel不能显示数据的问题.
      

  9.   

      EXTJS中
    在grid中{
     text: '操作时间',
      dataIndex: 'optime',
      width: 100,
      renderer: renderDateTime// 把这一句加上就可以了
    }