有一个非常基本的列表组件,但是想要根据值/我尝试设置tpl来改变某些行的行颜色,但它似乎不起作用。任何帮助将不胜感激
Ext.create('Ext.dataview.List', {
id : 'mylist',
store: myStore,
tpl: new Ext.XTemplate(
'<tpl for=".">'
' <tpl if="val == 0"><div style="background-color:red">{name}</div></tpl>',
' <tpl if="val == 1"><div>{name}</div></tpl>',
'</tpl>'
)
});
答案 0 :(得分:3)
啊,基本的错误,这就是你的代码::
<tpl if="val == 0">
这应该是它应该是:::
<tpl if="val === 0">
**请注意您需要在实际比较的两个值之间添加的三个“等于”符号。所以,如果你通常写
x=y
然后在一个
的模板中x==y // (you basically add an extra equal)
所以像
这样的条件语句x==y //when you're checking if the values are equal
成为
x===y
编辑::为要填充的背景颜色
添加整个行的编码注意::请创建一个单独的XTemplate对象,而不是内联tpl代码。这将使您充分发挥XTemplate的潜力,包括非常酷的成员函数!
试用1 ::
tpl为背景颜色添加的代码
'<li class="{[this.listClasses(xindex,xcount)]}">',
'<b> {nameOfMeeting}</b>',
'<br> Start Time : {start} || End Time : {end}',
'</li>',
{
listClasses : function(position, size){
var classes = [];
if (position%2===0) {classes.push("even")}
else {classes.push("odd")};
if (position === 1) {classes.push("first")}
else {classes.push("last")};
return classes.join(" ");
}
}
//注意:我已经在帮助函数中添加了我用来改变类的背景颜色。我的tpl,基本上在每个列表行使用替代颜色。因此,如果第一行是绿色,第二行是黄色,第三行是绿色,第四行是黄色,依此类推。
要添加的关联CSS(对于在li标签中选择的listClasses)
#meetingsList li.odd { background-color: #ebdde2; }
#meetingsList li.even { background-color: #fdeef4; }
#meetingsList li.odd { border-bottom: 1px solid #999; }
#meetingsList li.even { border-bottom-style: none; }
EDIT试用版2 ::要添加的新CSS
CSS
.testview .x-dataview-item { border-bottom : 1px solid #cccbcb; }
.testview .x-item-selected { background-color: #006bb6; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #50b7ff), color-stop(2%, #0080da), color-stop(100%, #005692) ); background-image: -webkit-linear-gradient(#50b7ff, #0080da 2%, #005692);
background-image: linear-gradient(#50b7ff, #0080da 2%, #005692);
color: #fff;;
text-shadow: rgba(0, 0, 0, 0.5) 0 -0.08em 0;
border-color: #103656; }
要将CSS添加到代码中,请将以下内容添加到列表对象::
{
xtype : 'list'
. . . .
cls : 'testview'
}
答案 1 :(得分:1)
这可能会迟到但你可以这样做
items: [{
xtype: 'list',
id: 'patientList',
store: app.stores.patientList,
itemTpl: new Ext.XTemplate('<tpl if="overDue14Days > 0"><div class="severeItem"></div></tpl><tpl if="overDue3Days > 0"><div class="mildItem"></div></tpl>', '<div class="listBox">', '<div class="listText">{patientFirstName} {patientLastName}', '<div class="metadata">{numberOfOrders} orders</div>', '</div>', '<div class="listSpacer"></div>', '<div class="deleteItem" id="notMyPatientButton"></div>', '<div class="listArrow"></div>', '</div>'),
并在您的css文件中添加列表样式
.patientList.x-list-item
{
background-color: #ff0000;
}
答案 2 :(得分:0)
这就是我的所作所为:
items: [{
xtype: 'list',
id: 'patientList',
store: app.stores.patientList,
itemTpl: new Ext.XTemplate('<tpl if="overDue14Days > 0"><div class="severeItem"></div></tpl><tpl if="overDue3Days > 0"><div class="mildItem"></div></tpl>', '<div class="listBox">', '<div class="listText">{patientFirstName} {patientLastName}', '<div class="metadata">{numberOfOrders} orders</div>', '</div>', '<div class="listSpacer"></div>', '<div class="deleteItem" id="notMyPatientButton"></div>', '<div class="listArrow"></div>', '</div>'),
在我的css而不是背景颜色中,我使用背景渐变:
.severeItem {
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0%,#fccdce), color-stop(10%, #fcc2c4), color-stop(50%,#fdaaac), color-stop(100%, #ff8891));
}
.mildItem{
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0%,#feedba), color-stop(10%, #fcda8b), color-stop(50%,#fdd986), color-stop(100%, #ffe888));
}
答案 3 :(得分:0)
- 创建自己的样式并覆盖sencha touch list-item css
醇>
.myList {
}
.myList .x-list-item {
position:relative;
color:#333;
padding:0em 0em;
min-height:2.1em;
display:-webkit-box;
display:box;
border-top:1px solid #c8c8c8
}
.myList .x-list-item .brands-row-spon {
width: 100%;
background-color: #D8D8D8;
padding:0.5em 0.8em;
min-height:2.6em;
}
.myList .x-list-item .brands-row {
width: 100%;
min-height:2.6em;
padding:0.5em 0.8em;
}
- 添加sencha触摸列表项的cls属性
醇>
new Ext.List({
fullscreen: true,
id:'xList',
itemTpl :xListTpl,
cls:'myList',
grouped :true,
store: new Ext.data.Store({
model:'yourModel'
})
})
- 添加条件以更改列表itemTpl
中特定列表项的颜色 醇>
var xListTpl = new Ext.XTemplate(
'<tpl for=".">',
'<tpl if="isSponsored =="true""">',
'<div class="brands-row-spon">',
'</tpl>',
'<tpl if="isSponsored !="true""">',
'<div class="brands-row">',
'</tpl>',
'</tpl>'
);