Как найти строки в табличном представлении в Titanium Developer - PullRequest
0 голосов
/ 23 апреля 2011

У меня есть представление таблицы в моем файле JavaScript с Titanium Developer.У меня есть несколько пользовательских TableViewRows, и я хочу получить значения входных данных в пользовательских строках, которые я сделал, когда я нажимаю кнопку на панели навигации, поскольку входные данные будут изменены.

Это мойпользовательский код строки:

function createInputRow(label, value) {
    var row = Titanium.UI.createTableViewRow();
    var input = Titanium.UI.createTextField({
        value: value,
        //font: {fontSize:19,fontWeight:'bold'},
        width: 200,
        textAlign: 'left',
        top: '50%',
        bottom: '50%',
        left: 80,
        height: 35,
        color: '#336699'
    });
    row.add(input);

    var labelLabel = Titanium.UI.createLabel({
        text: label,
        font: {
            fontSize: 13
        },
        width: 72,
        textAlign: 'left',
        top: '50%',
        bottom: '50%',
        left: 8,
        height: 16
    });
    row.add(labelLabel);
    return row;
}

И вот код для настройки таблицы:

var tableView = Titanium.UI.createTableView({
    style: Titanium.UI.iPhone.TableViewStyle.GROUPED
});

var cells = [];
cells.push(createInputRow('First Name', rows.fieldByName('first_name'))); // the database extraction is fine
/* more rows */

tableView.setData(cells);
win.add(tableView);

И, наконец, это мой код кнопки:

var saveButton = Titanium.UI.createButton({
    title: 'Update'
});

saveButton.addEventListener('click', function() { 
    /* what to do here to get rows? */
    var query = tableView.rows;
});
win.setRightNavButton(saveButton);

Любая помощь будет принята с благодарностью.Если меня направят в правильном направлении, я обычно могу решить остальное.

1 Ответ

2 голосов
/ 23 апреля 2011

Я бы определил входные данные как массив вне функции, чтобы они могли быть зациклены после при необходимости.

var inputs = [];
function createInputRow(label, value, index) {
    var row = Titanium.UI.createTableViewRow();
    inputs[index] = Titanium.UI.createTextField({
        // properties
    });
    row.add(inputs[index]);

    var labelLabel = Titanium.UI.createLabel({
        // properties
    });
    row.add(labelLabel);
    return row;
}

saveButton.addEventListener('click', function() { 
    var data = tableView.data;
    for(var i=0,l=data.length;i<l;i++) {
        Ti.API.info(inputs[i].value);
    }
});
...