0
로컬 데이터베이스에서 데이터를 가져 와서 사용자 정의 행을 사용하는 테이블 뷰에 표시하려고합니다. 제대로 표시하는 방법을 모르겠습니다. 현재 쓰여지는 방식으로 데이터가 올바르게 표시된 한 행이 표시되지만 수천 개의 빈 행이 표시됩니다. 두 개의 while (rows.isValidRow())
문이 있기 때문에 내 문제라고 생각합니다. 누군가이 디스플레이를 올바르게 만들 수있는 코드를 보여 주시겠습니까? 현재 코드는 다음과 같습니다.사용자 정의 테이블 뷰 행 표시
//Setup the window
var win = Titanium.UI.currentWindow;
win.barColor='#000000';
//install database
var db = Ti.Database.install('bcapool3.sqlite','distributor');
//Get data
var rows = db.execute('SELECT * FROM distributor');
// create table view
var tableview = Ti.UI.createTableView({
backgroundColor:'transparent',
color: '#000000',
top:80,
height:'auto',
left:80,
right:80,
bottom:120
});
function setData() {
while (rows.isValidRow())
{
var dataArray = [];
var row = Ti.UI.createTableViewRow({
haschild: true,
path: 'distributordetail.js'
});
var title = Ti.UI.createLabel({
color:'#000000',
height:32,
left:5,
top:2,
font:{fontSize:'18dp',fontWeight:'bold' },
backgroundColor:'transparent',
text:'' + rows.fieldByName('distributor_name') + ''
});
var address = Ti.UI.createLabel({
color:'#000000',
height:32,
left:5,
top:34,
fontSize:'14dp',
backgroundColor:'transparent',
text:'' + rows.fieldByName('distributor_address') + ''
});
var distance = Ti.UI.createLabel({
color:'#000000',
height:32,
right: 10,
top:34,
fontSize:'12dp',
backgroundColor:'transparent',
text:'' + rows.fieldByName('distance') + ''
});
row.add(title);
row.add(address);
row.add(distance);
tableview.add(row);
row.className = 'distributorRow';
dataArray.push(row);
rows.next();
}
// set the array to the tableView
tableview.setData(dataArray);
}
}
문제가 해결되었습니다. 위의 코드는 작동하는 코드를 반영하도록 편집되었습니다! – dnevels