- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对商店进行分组,并将自定义字段添加到模型中的 JSON 数据记录中:
Ext.define('SCB.RMWB.InfoBar.Model.Message', {
extend: 'Ext.data.Model',
idProperty: 'Message',
fields: [
{name: 'id', type: 'int'},
{name: 'source', type: 'string'},
{name: 'target', type: 'string'},
{name: 'sourceType', type: 'string'},
{name: 'redirectUrl', type: 'string'},
{name: 'message', type: 'string'},
{name: 'targetType', type: 'string'},
{name: 'messageType', type: 'string'},
{name: 'sentDate', type: 'int'},
{name: 'notificationType', type: 'string'},
{name: 'parameters', type: 'string'},
{name: 'read', type: 'boolean'},
{name: 'readDate', type: 'int'},
{
name: 'dateGroup',
type: 'string',
convert: function(value, record) {
var formattedSentDate = dateHelpers.format(record.get('sentDate')),
str = '';
if (formattedSentDate === dateHelpers.today()) {
str = 'Today';
} else if (formattedSentDate === dateHelpers.yesterday()) {
str = 'Yesterday';
} else {
str = 'Last week';
}
return str;
}
}
],
validations: [
{type: 'presence', field: 'id'},
{type: 'presence', field: 'source'},
{type: 'presence', field: 'target'},
{type: 'presence', field: 'sourceType'},
{type: 'presence', field: 'redirectUrl'},
{type: 'presence', field: 'message'},
{type: 'presence', field: 'targetType'},
{type: 'presence', field: 'messageType'},
{type: 'presence', field: 'sentDate'},
{type: 'presence', field: 'notificationType'},
{type: 'presence', field: 'parameters'},
{type: 'presence', field: 'read'},
{type: 'presence', field: 'readDate'},
{type: 'presence', field: 'dateGroup'}
]
});
因此,显然所需的分组是今天、昨天和上周。
这似乎工作正常,但我需要以 Accordion 方式呈现分组,并用标题表示分组。
目前,模板每次都会输出日期分组,我需要一次分组标题,然后是属于该分组的记录。
这是当前模板:
'<tpl for=".">',
'<li class="view-all-details">',
'<h3>{dateGroup}</h3>',
'<div>',
'<p>{[ Ext.util.Format.ellipsis(values.message, 100, true) ]}</p>',
'<span class="time-frame">{[ SCB.RMWB.Infobar.utils.dateRangeMsg(values.sentDate) ]}</span>',
'</div>',
'</li>',
'</tpl>'
我知道模板当前不会输出我需要的内容,但不确定如何使用标题对 View 中的记录进行分组。
最佳答案
我知道问题已有5年历史,但我也有同样的要求。所以我也做了同样的工作,并从我的最终得到了解决方案,所以我在这里分享。
对于 XTemplate
的内部您需要检查 if
条件来显示日期组的通用 header ,并处理一个变量
来检查日期组
的类型。
如何检查是否条件检查tpl
?请参阅下面的示例:-
'<tpl for="kids">',
'<tpl if="age > 1">',
'<p>{name}</p>',
'<p>Dad: {parent.name}</p>',
'</tpl>',
'</tpl></p>'
在此FIDDLE ,我使用 Ext.view.View 创建了一个演示, store , model和 panel 。我希望这将帮助或指导您/其他人实现您的要求。
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
var message = [],
date,
date1;
/*
* function will calculate diffrence b/w 2 dates
* @param{Date} min
* @param{Date} max
* @return number
*/
function dayDiff(min, max) {
return Math.round((max - min) / (1000 * 60 * 60 * 24))
}
//createing demo message for testing
for (var i = 0; i < 12; i++) {
if (i < 4) {
date = Date.now();
} else if (i >= 4 && i < 8) {
date1 = new Date();
date = date1.setDate(date1.getDate() - 1);
} else {
date1 = new Date();
date = date1.setDate(date1.getDate() - 2);
}
message.push({
text: `Hello I am message ${i+1}`,
sentdate: Ext.Date.clearTime(new Date(date)),
id: i + 1
})
}
//Create Message model
Ext.define('Message', {
extend: 'Ext.data.Model',
fields: ['id', 'text', {
name: 'sentdate',
type: 'date'
}, {
name: 'dateGroup',
type: 'string',
convert: function (value, record) {
var sentDate = record.get('sentdate'),
str,
diff = dayDiff(new Date(sentDate), Ext.Date.clearTime(new Date()));
if (diff == 0) {
str = 'Today';
} else if (diff == 1) {
str = 'Yesterday';
} else {
str = 'Last week';
}
return str;
}
}
/*, {
name: 'group',
type: 'int',
mapping: 'dateGroup',
convert: function (value, rec) {
switch (rec.get('dateGroup')) {
case 'Today':
value = 0;
break;
case 'Yesterday':
value = 1;
break;
default:
value = 2
}
return value;
}
}*/
],
// sort: 'group'
});
//create message store
Ext.create('Ext.data.Store', {
storeId: 'message',
model: 'Message'
});
//Create data view
//we can also use using xtype:'dataview' inside of items
var view = Ext.create('Ext.view.View', {
height: window.innerHeight,
//overflowY: 'auto',
store: 'message',
tpl: new Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<tpl if="this.isSameGroup(values.dateGroup)"><div class="x-group-header"><b>{[this.doShowGroup(values.dateGroup)]}</div></b></tpl>',
'<div class="x-message-item ">{text} <span>{[Ext.Date.format(values.sentdate,"d M y")]}<span></div>',
'</tpl>', {
isSameGroup: function (group) {
return this.currentGroup != group;
},
doShowGroup: function (group) {
this.currentGroup = group;
return group;
}
}),
itemSelector: '.x-message-item',
emptyText: 'No data available',
renderTo: Ext.getBody()
});
//create panel
Ext.create('Ext.panel.Panel', {
title: 'Rendering a custom view from a grouped store with a title for the grouping',
items: [view],
renderTo: Ext.getBody(),
listeners: {
afterrender: function () {
this.down('dataview').getStore().loadData(message);
}
}
});
}
});
关于javascript - ExtJS 4 : rendering a custom view from a grouped store with a title for the grouping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14040857/
我在大学学习C++时学习了这段代码..后来我在C#中使用了同样的东西...但现在我想在Java中使用它...我在互联网上寻找类似的东西,但我什至不知道如何表达它,以便我得到正确的结果。 所以嗯,请让我
我正在我的 Ruby on Rails Controller 上运行 RSPEC 测试,这是我正在测试的 Controller 操作: Controller 代码: class Customers::
想为我选择的选项卡设置自定义背景,到目前为止,子类化是我自定义 UITAbBar/UITabBarItem 的方式。 问题是:有谁知道(或知道我在哪里可以找到)设置背景的属性是什么? 所选选项卡周围有
您好,我在 commerefacades-beans.xml 中创建了 eProductForm bean,我添加了 ProductData 的自定义属性。 然后在commercewebs
我有两个表:1. 客户2. customer_order 客户表包含客户数据(duh),customer_order 包含所有订单。我可以在 customer.id=customer_order.id
在我的 TableView 中,我有一个 NSMutableArray *currList 的数据源 - 它包含对象 Agent 的对象。我创建了自定义的 TableCell 并正确设置了所有内容。我
是否建议使用自引用泛型继承? public abstract class Entity { public Guid Id {get; set;} public int Version
我正在尝试为我的 Grafana 安装使用自定义文件 ( custom.ini )。不幸的是,这不起作用。 我做了什么: 安装了一台装有 CentOS 7 的虚拟机 添加了 Grafana Yum R
我被分配了两个给定类的作业,一个是抽象父类 Lot.java,另一个是测试类 TestLots.java。我不应该编辑其中任何一个。任务是创建Lot的两个子类,使TestLots中的错误不再是错误。
我是 Botpress 的新手。 我刚刚安装了 Botpress 的最新版本“botpress-ce-v11_0_1-win-x64”。 我浏览了文档,发现了一些关于内容类型、内容元素和内容渲染的解释
我一直在四处寻找,但我还没有找到任何东西,除了 Qt3 的旧文档和 qt 设计器的 3.x 版。 我会举个例子,并不是因为我的项目是 GPL 而不能提供代码,而是为了简单起见。 示例:您正在为您的应用
场景 我有一个自定义规则来验证订单的运费: public class OrderValidator : BaseValidator { private string CustomInfo {
我有用于身份验证的自定义拦截器: @Named("authInterceptor") @Provides @Singleton fun providesAuthIntercep
如果有人没有添加照片,我想显示默认头像图像。我假设我需要在模型或助手中执行自定义 getter。 如果我做 getter,它会看起来像这样吗: def avatar_url "default_ur
我正在使用 Google Search API,但遇到了一些麻烦。这个请求(在 Python 中,使用 requests 库)工作正常 res = requests.get("https://www.
我使用 MSKLC 制作了自定义键盘布局。 我以为我仔细按照说明操作了chose appropriate values对于LOCALENAME和 LOCALID参数。 但是,在通过按 Win+Spac
我正在使用 simpleframework解析 XML 字符串并将其转换为对象。 Serializer serializer = new Persister(); try { Customer
我正在使用 C# 控制台应用程序从 MySql 数据库获取一些数据,但在正确查询时遇到一些问题 现在的情况: SELECT * FROM Customer WHERE EXISTS ( SELECT
我在我的 iPhone 4S 上运行我的应用程序,我正在使用自定义表格 View Controller 和自定义表格 View 单元格,当我将表格 View 向上滑动到空白区域并同样向下滑动到空白区域
我有一个自定义的 JavaScript 变量,它正在检查 eventAction 是什么,这样我就可以知道是否触发一些转换像素。自定义 Javascript 称为“FacebookConversion
我是一名优秀的程序员,十分优秀!