0

我是sencha touch的新手,我有一些简单的问题。我不需要 100% 的工作代码作为答案,但如果有人能指出我正确的方向,那就太好了。但请记住,煎茶触摸对我来说是新的。我使用 sensha touch 1.x。

让我先解释一下我的应用程序是做什么的。它显示了一个包含项目的列表(通过 json 代理从数据库中获取)。您可以点击显示表单的项目。然后,您可以更新或删除该项目。在列表屏幕上,您还可以添加新项目。非常简单 :-)

以下是我的问题:

1/ 日期选择器字段:

表格中有一个datepickerfield. 默认格式为month/day/year. 我住在欧洲所以甲酸盐应该是day/month/year。有了slotorder,我可以改变这一点。但是该字段本身仍然具有错误的格式。我试图用一个听众来解决这个问题:

change: function() {
this.fieldEl.dom.value = this.getValue().format('d/m/Y'); 
}

这在选择日期时有效。但是当从列表中点击一个项目时,datepickerfield仍然是错误的格式。我尝试使用其他侦听器,例如afterrender,scope等。但没有任何效果。

2/ 数字字段:

在模型中我有一个字段duration。它属于timesql 表中的类型。所以格式是hh:mm:ss. 在表格中我有 3 numberfields。一个小时,一个分钟,一个秒。

当从列表中点击一个项目时,如何将字段duration分成 3 个部分并填写 3 个部分numberfields

3/ 上下文选择域

在表单中有一个selectfield取决于登录用户的值。如果用户 1 已登录,则值应为x, y, z。如果用户 2 已登录,则值应为xab等。

因此,在打开表单时,selectfield应预先填写数据。它应该从服务器调用一个函数来获取正确的数据。如何做到这一点?

4/ 像推特一样刷新列表

我希望列表在到达末尾时获取其他项目(如 twitter)。我在网上找到了一些东西:PullRefresh插件。但我不能让它工作。

有任何想法吗?

5/ 样式列表

是否可以单独设置列表中的每个项目的样式?您可以使用styleHtmlCls, 等,但它会为整个列表设置样式。

提前非常感谢。

4

2 回答 2

0

对于那些感兴趣的人,我的解决方案。

1/ 这code Ext.apply(Ext.util.Format, {defaultDateFormat: 'd/m/Y'});设置了应用程序中所有日期的格式。

2/ 我在模型 3 中创建了额外的字段。它是字段“duration”的 3 个“转换”字段,格式为“hh:mm:ss”。这是代码(字段 duration_m 和 duration_s 相同):

name: 'duration_h', 
            convert: function(value, record) 
{
           var duration= record.get('duration'), 
                 splits    = duration.split(":"), 
                 duration_h = splits[0];
           return duration_h;             
} 

在我的表单中,我现在使用 3 个数字字段链接到这 3 个额外字段。保存数据时不要忘记执行 PHP 代码:model.set('duration_h', ''); 否则,这些字段不会在模型中设置并保持为空。

3/ 和 4/ 我还没有解决。

于 2012-09-26T07:21:30.960 回答
0

1 - 这很容易设置:

picker: {
slotOrder: ["day","month","year"]
}

2 - 我不明白 2 更清楚

3 - 您需要为此使用本地存储

4 - 分页试试这个链接sencha list paging plugin

5 - 您不能直接为每个项目设置不同的样式,但您可以通过设置其样式配置为列表中的每个项目定义样式

于 2012-09-11T12:42:02.793 回答