表格行中标签的数据转换样式
Data transforming style of label in a tablerow
我目前正在对 TableView a 进行数据绑定,下面是代码:
<Alloy>
<TableViewRow backgroundColor="{background}" id="businessRow">
<Label id="st1" class="ribbonIcon1" color="{highlight1}" text="{st1}"/>
<Label id="st2" class="ribbonIcon2" color="{highlight2}" text="{st2}"/>
<Label id="st3" class="ribbonIcon3" color="{highlight3}" text="{st3}"/>
<Label id="st4" class="ribbonIcon4" color="{highlight4}" text="{st4}"/>
<Label id="st5" class="ribbonIcon5" color="{highlight5}" text="{st5}"/>
</TableViewRow>
</Alloy>
每个标签都是由 {st1}
定义的图标字体。我正在使用引用连字的 icomoon 字体,因此我可以相应地更改图标。我在这个测试中使用了复选框字体图标。
然后我进行数据转换以突出显示与业务相关的蓝色图标和灰色图标,如果没有则从 SQLite 数据库 (DesQuery) 中提取。
SQL 片段和函数
...COUNT(BusinessSites.BusinessID) AS Bqty, sum(case when Services.ServiceID = "1" then 1 else 0 end) ST1, sum(case when Services.ServiceID = "2" then 1 else 0 end) ST2, sum(case when Services.ServiceID = "3" then 1 else 0 end) ST3, sum(case when Services.ServiceID = "4" then 1 else 0 end) ST4, sum(case when Services.ServiceID = "5" then 1 else 0 end) ST5 FROM...
function DescOrder(){
Junctions.fetch({query:DesQuery});
Junctions.setSortField("display_order", "DESC");
Junctions.sort();
transformJunctionList(Junctions);
toggleOrder = "DESC";
}
function AscOrder(){
Junctions.fetch({query:DesQuery});
Junctions.setSortField("display_order", "ASC");
Junctions.sort();
transformJunctionList(Junctions);
toggleOrder = "ASC";
}
function transformJunctionList(model) {
var transform = model.toJSON();
transform.st1 = "checkbox";
transform.ST1 > "0" ? transform.highlight1 = "#4993cc" : transform.highlight1 = "#ebe9e9";
transform.st2 = "checkbox";
transform.ST2 > "0" ? transform.highlight2 = "#4993cc" : transform.highlight2 = "#ebe9e9";
transform.st3 = "checkbox";
transform.ST3 > "0" ? transform.highlight3 = "#4993cc" : transform.highlight3 = "#ebe9e9";
transform.st4 = "checkbox";
transform.ST4 > "0" ? transform.highlight4 = "#4993cc" : transform.highlight4 = "#ebe9e9";
transform.st5 = "checkbox";
transform.ST5 > "0" ? transform.highlight5 = "#4993cc" : transform.highlight5 = "#ebe9e9";`
iOS 上的输出正在工作,但给我这个警告:
`
[WARN] : Hex color passed looks invalid:
但是,它在加载 tableView 时崩溃 Android。这在以前的版本上没有错误。如果我删除 {highlight1}
等并替换为有效的十六进制,它运行正常。
这是 iPhone 上输出的当前屏幕片段。
任何关于如何实现相同结果的建议都将是非常棒的。
我们 运行 在新版本中也解决了这个问题。对我们来说,这是我们有时设置的颜色。在以前的版本中,它只会忽略没有颜色的那些,但在这个版本中,它会尝试解析 null。我们通过在 t运行sform 函数中为所有模型设置默认颜色白色来修复它,然后根据需要更改它。
我目前正在对 TableView a 进行数据绑定,下面是代码:
<Alloy>
<TableViewRow backgroundColor="{background}" id="businessRow">
<Label id="st1" class="ribbonIcon1" color="{highlight1}" text="{st1}"/>
<Label id="st2" class="ribbonIcon2" color="{highlight2}" text="{st2}"/>
<Label id="st3" class="ribbonIcon3" color="{highlight3}" text="{st3}"/>
<Label id="st4" class="ribbonIcon4" color="{highlight4}" text="{st4}"/>
<Label id="st5" class="ribbonIcon5" color="{highlight5}" text="{st5}"/>
</TableViewRow>
</Alloy>
每个标签都是由 {st1}
定义的图标字体。我正在使用引用连字的 icomoon 字体,因此我可以相应地更改图标。我在这个测试中使用了复选框字体图标。
然后我进行数据转换以突出显示与业务相关的蓝色图标和灰色图标,如果没有则从 SQLite 数据库 (DesQuery) 中提取。
SQL 片段和函数
...COUNT(BusinessSites.BusinessID) AS Bqty, sum(case when Services.ServiceID = "1" then 1 else 0 end) ST1, sum(case when Services.ServiceID = "2" then 1 else 0 end) ST2, sum(case when Services.ServiceID = "3" then 1 else 0 end) ST3, sum(case when Services.ServiceID = "4" then 1 else 0 end) ST4, sum(case when Services.ServiceID = "5" then 1 else 0 end) ST5 FROM...
function DescOrder(){
Junctions.fetch({query:DesQuery});
Junctions.setSortField("display_order", "DESC");
Junctions.sort();
transformJunctionList(Junctions);
toggleOrder = "DESC";
}
function AscOrder(){
Junctions.fetch({query:DesQuery});
Junctions.setSortField("display_order", "ASC");
Junctions.sort();
transformJunctionList(Junctions);
toggleOrder = "ASC";
}
function transformJunctionList(model) {
var transform = model.toJSON();
transform.st1 = "checkbox";
transform.ST1 > "0" ? transform.highlight1 = "#4993cc" : transform.highlight1 = "#ebe9e9";
transform.st2 = "checkbox";
transform.ST2 > "0" ? transform.highlight2 = "#4993cc" : transform.highlight2 = "#ebe9e9";
transform.st3 = "checkbox";
transform.ST3 > "0" ? transform.highlight3 = "#4993cc" : transform.highlight3 = "#ebe9e9";
transform.st4 = "checkbox";
transform.ST4 > "0" ? transform.highlight4 = "#4993cc" : transform.highlight4 = "#ebe9e9";
transform.st5 = "checkbox";
transform.ST5 > "0" ? transform.highlight5 = "#4993cc" : transform.highlight5 = "#ebe9e9";`
iOS 上的输出正在工作,但给我这个警告:
`
[WARN] : Hex color passed looks invalid:
但是,它在加载 tableView 时崩溃 Android。这在以前的版本上没有错误。如果我删除 {highlight1}
等并替换为有效的十六进制,它运行正常。
这是 iPhone 上输出的当前屏幕片段。
任何关于如何实现相同结果的建议都将是非常棒的。
我们 运行 在新版本中也解决了这个问题。对我们来说,这是我们有时设置的颜色。在以前的版本中,它只会忽略没有颜色的那些,但在这个版本中,它会尝试解析 null。我们通过在 t运行sform 函数中为所有模型设置默认颜色白色来修复它,然后根据需要更改它。