我正在尝试使用 Titanium 和 Javascript 为 iOS(如 iOS 联系人)创建按字母顺序排列的滚动条。我已经修改了我在这里找到的一些代码
我正在尝试对其进行调整,以便当用户选择特定行时,它将“客户端名称”传递给新窗口。代码和/或很可能我尝试调整它的方式有两个问题。选择时直接在“标题”行(A,B,C ...)之后的第一行不执行任何操作,第一行之后的其他行将用户引导到新窗口但不传递“客户端名称”。有人可以给我看一下可以完成这项工作的代码吗?我正在使用 OS 10.7.5,Titanium Studio Build: jenkins-titanium-rcp-release-788 (origin/release) 日期:2013 年 2 月 20 日,12:04:51。这是我的代码: 注意:下面的代码是修复问题后的工作代码
var win = Titanium.UI.currentWindow;
win.barColor='#336699';
win.title='Alphabetical List';
win.backgroundImage='images/background.png';
var db = (function() {
var api = {};
api.all_item_names = function() {
var conn = Ti.Database.install('mydb].sqlite','clients');
var results = [];
var resultSet = conn.execute('select * from clients order by clientname asc');
while ( resultSet.isValidRow()) {
results.push({
clientname: resultSet.fieldByName('clientname'),
});
resultSet.next();
}
resultSet.close();
return results;
};
return api;
}());
var tvrow;
var curheader = 'A';
var list = [];
var index = [];
var data = [];
var isAndroid = (Titanium.Platform.name == 'android');
list = ( db.all_item_names() );
for ( var ipos=0; ipos<list.length;ipos++){
if( list[ipos].clientname[0] != curheader){
curheader = list[ipos].clientname[0];
tvrow = Titanium.UI.createTableViewRow({
height: 40,
path:'clientdetail.js' ,
client: list[ipos],
header: curheader
});
index.push({title:curheader, index:ipos});
} else {
tvrow = Titanium.UI.createTableViewRow({
height:40,
path:'clientdetail.js' ,
client: list[ipos]});
}
var title= Titanium.UI.createLabel({
left: 5,
top: 2,
height: 40,
color: '#000',
font: {fontSize: 14, fontWeight: 'normal', fontFamily: (isAndroid?'sans-serif':'Helvetica Neue')},
text: list[ipos].clientname });
tvrow.add(title);
data.push(tvrow);
}
var tableView = Titanium.UI.createTableView({
data: data,
index: index,
backgroundColor:'transparent',
separatorStyle: Titanium.UI.iPhone.TableViewStyle.GROUPED,
top: 1,
width: '99%'
});
tableView.addEventListener('click', function(e)
{
if (e.rowData.path)
{
var win = Ti.UI.createWindow({
url:e.row.path,
title:e.row.clientname
});
var client = e.row.client;
win.client = client.clientname;
Ti.UI.currentTab.open(win);
}
});
win.add(tableView);