新手求教: ExtJs gridPanel 在绑定日期类型的时候,怎么转换为自己想要的格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手求教: ExtJs gridPanel 在绑定日期类型的时候,怎么转换为自己想要的格式相关的知识,希望对你有一定的参考价值。

比如:2012-5-11 8:00:00-->8:00麻烦详细点,谢谢!

参考技术A 在需要进行时间格式化的列上定义一种显示样式即可:
例如:
var colM=new Ext.grid.ColumnModel([
header:"日期",
dataIndex:"date",
renderer:Ext.util.Format.dateRenderer('Y-m-d'), //定义格式化样式
]);追问

不行,还有其他的办法么?
麻烦了。。

追答

fields里面的列你格式化了没有:
如下:
this.store = new Ext.data.JsonStore(
url : '#',
root : 'root',
totalProperty : 'totalCount',
fields : [
name : 'date',
format : 'Y-m-d',
type : 'date'
]
);

追问

//数据源
fields : [name:"wksetid",name:"wksetname"
name:"sbsj1",format : 'Y-m-d',type : 'date'
//列集合
columns: [ header:"早班上班",tooltip:"早班上班",renderer: Ext.util.Format.dateRenderer('Y-m-d'),dataIndex:"sbsj1",width:"12.1%",
]
)还是不行,不知道怎么的

追答

如果你要显示的是小时和分钟,可以将格式化修改成‘ H:i’。如果还是不行,你可以在后台的SQL语句中也进行格式化一下。

另外,从你的截图来看,你的数据都有些错位了,你也可以检查一下是不是数据错位导致的,再检查检查dataIndex是不是有些错,比如大小写之类的。

本回答被提问者采纳

ExtJs Gridpanel 存储刷新

【中文标题】ExtJs Gridpanel 存储刷新【英文标题】:ExtJs Gridpanel store refresh 【发布时间】:2011-04-28 08:01:30 【问题描述】:

我正在从数据库绑定 ExtJs Gridpanel,并在我的网格面板下方添加“删除”按钮。通过使用删除按钮处理程序,我删除了网格面板上的选定记录。但是,删除后,网格不刷新(从数据库中删除,但由于不刷新而显示在网格上)。

删除处理程序后如何刷新网格?

【问题讨论】:

【参考方案1】:

尝试刷新视图:

Ext.getCmp('yourGridId').getView().refresh();

【讨论】:

这似乎不起作用。我 80% 的行都消失了【参考方案2】:

重新加载 ds 以刷新网格。

ds.reload();

【讨论】:

这行得通! getView().refresh() 好像没有效果。 刷新视图仍然适用于本地数据。如果您只删除服务器上的记录而不是本地记录,刷新将无济于事。【参考方案3】:
grid.store = store;
store.load( params:  start: 0, limit: 20 );
grid.getView().refresh();

【讨论】:

你确定你应该在异步加载后立即调用 grid.view.refresh() 吗?【参考方案4】:

我遇到了类似的问题。我需要做的就是在删除处理程序中输入store.load();。无需随后键入grid.getView().refresh();

除此之外,您还可以在删除处理程序中键入store.remove(record); - 这可确保已删除的记录不再显示在网格上。

【讨论】:

【参考方案5】:

试试这个grid.getView().refresh();

【讨论】:

他回答这个比接受的答案晚了 1 分钟,可能他们在同一时间打字,但他们的网速不同。【参考方案6】:

使用 store.remove 比使用 model.destroy 更好。 该按钮的单击处理程序可能如下所示:

destroy: function(button) 
    var grid = button.up('grid');
    var store = grid.getStore();
    var selected = grid.getSelectionModel().getSelection();

    if (selected && selected.length==1) 
        store.remove(selected);
    

【讨论】:

【参考方案7】:
grid.getStore().reload(
  callback: function()
    grid.getView().refresh();
  
);

【讨论】:

【参考方案8】:

大傻与MMT解决方案的结合:

  Ext.getCmp('yourGridId').getView().ds.reload();

【讨论】:

【参考方案9】:

3.4 中的另一种方法(不知道这是否是正确的 Ext):您可以拥有这样的删除处理程序,假设每一行都有一个“删除”按钮。

handler: function(grid, rowIndex, colIndex) 
    var rec = grid.getStore().getAt(rowIndex);
    var id = rec.get('id');
    // some DELETE/GET ajax callback here...
    // pass in 'id' var or some key
    // inside success
    grid.getStore().removeAt(rowIndex);

【讨论】:

【参考方案10】:

刷新网格存储

Ext.getCmp('GridId').getStore().reload();

这将重新加载网格存储并获取新数据。

【讨论】:

以上是关于新手求教: ExtJs gridPanel 在绑定日期类型的时候,怎么转换为自己想要的格式的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs Gridpanel 存储刷新

前台extjs,后台java,导出 gridpanel的数据到execl中,如何做,求前台和后台action代码 ,

在 Extjs 中删除 GridPanel 的 headertoolbar

无废话ExtJs 入门教程十七[列表:GridPanel]

extjs 5,在gridpanel上定义dropzone,但不能drop,为啥?

如何让 GridPanel 在 ExtJS 4 中显示正确的时间?