从数据库向表视图添加行
Add rows to a tableview from database
我需要将行附加到从数据库读取数据的表视图。我的问题是所有行都是混合的。
我的密码是
var db = Ti.Database.open('MyData');
var rows = db.execute('SELECT * FROM TablaAuxiliar ORDER BY TablaAuxiliar.Nombre');
var i;
var nuevaRow=Ti.UI.createTableViewRow({height:80});
for (i=0;i<NRegistros;i++){
var titulo=Ti.UI.createLabel({
id: "NombreTerm",
text: rows.field(2),
color: "black" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:20,
top:5
});
var titulo2=Ti.UI.createLabel({
id: "EstadoTerm",
text: rows.field(3),
font: {fontSize: '30'},
color: "#888" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:20,
top:30
});
var titulo3=Ti.UI.createLabel({
id: "TemperaturaTerm",
text: rows.field(4)/10,
font: {fontSize: '50'},
color: "#888" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:200,
top:5
});
nuevaRow.add(titulo);
nuevaRow.add(titulo2);
nuevaRow.add(titulo3);
$.MenuLateral.appendRow(nuevaRow);
rows.next();
}
db.close();
$.MenuLateral 是用 Alloy
创建的 TableView
<TableView id="MenuLateral" top="20%" height="60%" left="0%" zindex="20" width="100%" backgroundColor="white" separatorColor="gray">
</TableView>
数据库中的每条记录都需要一行。问题出在哪里??
谢谢
只需将这行代码 var nuevaRow=Ti.UI.createTableViewRow({height:80}); 移到 for 循环.
实际上,您只创建了一个 TableViewRow 变量,如果您将使用相同的变量来附加行,那么它将是一个单行,只是从内部添加了许多标签 for 循环.
所以试试这个代码:
var i;
for (i=0;i<NRegistros;i++){
var nuevaRow=Ti.UI.createTableViewRow({height:80});
...
我需要将行附加到从数据库读取数据的表视图。我的问题是所有行都是混合的。
我的密码是
var db = Ti.Database.open('MyData');
var rows = db.execute('SELECT * FROM TablaAuxiliar ORDER BY TablaAuxiliar.Nombre');
var i;
var nuevaRow=Ti.UI.createTableViewRow({height:80});
for (i=0;i<NRegistros;i++){
var titulo=Ti.UI.createLabel({
id: "NombreTerm",
text: rows.field(2),
color: "black" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:20,
top:5
});
var titulo2=Ti.UI.createLabel({
id: "EstadoTerm",
text: rows.field(3),
font: {fontSize: '30'},
color: "#888" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:20,
top:30
});
var titulo3=Ti.UI.createLabel({
id: "TemperaturaTerm",
text: rows.field(4)/10,
font: {fontSize: '50'},
color: "#888" ,
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
left:200,
top:5
});
nuevaRow.add(titulo);
nuevaRow.add(titulo2);
nuevaRow.add(titulo3);
$.MenuLateral.appendRow(nuevaRow);
rows.next();
}
db.close();
$.MenuLateral 是用 Alloy
创建的 TableView <TableView id="MenuLateral" top="20%" height="60%" left="0%" zindex="20" width="100%" backgroundColor="white" separatorColor="gray">
</TableView>
数据库中的每条记录都需要一行。问题出在哪里??
谢谢
只需将这行代码 var nuevaRow=Ti.UI.createTableViewRow({height:80}); 移到 for 循环.
实际上,您只创建了一个 TableViewRow 变量,如果您将使用相同的变量来附加行,那么它将是一个单行,只是从内部添加了许多标签 for 循环.
所以试试这个代码:
var i;
for (i=0;i<NRegistros;i++){
var nuevaRow=Ti.UI.createTableViewRow({height:80});
...