将行从数据库添加到表视图

Add rows to a tableview from database

本文关键字:视图 添加 数据库      更新时间:2023-09-26

我需要将行追加到从数据库读取数据的表视图中。我的问题是所有的行都是混合的。

我的代码是

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})在循环的中。

实际上,您只创建了一个TableViewRow变量,如果您将使用同一个变量来appendRow,那么它将是一个单行,并且从内部为循环添加了许多标签。

所以试一下这个代码:

var i;
for (i=0;i<NRegistros;i++){
    var nuevaRow=Ti.UI.createTableViewRow({height:80});
...