Попытка очистить tableView просто удваивает содержание

Я пытаюсь обновить свое табличное представление обновленными данными, но всякий раз, когда я пытаюсь очистить его, используя либо

tagsTable.setData();
or
tagsTable.setData([]);
or
tagsTable.data = null;

а затем повторно применить обновленные данные, используя

tagsTable.setData(TagsData);

Первоначально он никогда не очищает таблицу, поэтому новые данные просто добавляются в конец таблицы, поэтому у меня есть старые данные, а также новые данные в таблице 1.

Кто-нибудь знает, что не так или как это исправить?

1 ответ

Вот простое (классическое приложение Titanium), которое показывает очистку и повторное заполнение таблицы. data свойство через несколько кнопок. Я бы трижды проверил правильность ваших разделов / строк TagsData, чтобы убедиться, что все в массиве установлено правильно.

var
    win = Ti.UI.createWindow({
        title: "Table Funs",
        layout: "vertical",
        backgroundColor: "#ffffff"
    }),
    navwin = Ti.UI.iOS.createNavigationWindow({
        window: win
    }),
    table = Ti.UI.createTableView(),
    clearButton = Ti.UI.createButton({
        title: "Clear Table",
        width: Ti.UI.FILL,
        height: 44,
        backgroundColor: "#f4f4f4",
        color: "red",
        bottom: 1
    }),
    fillButton = Ti.UI.createButton({
        title: "Fill Table",
        width: Ti.UI.FILL,
        height: 44,        
        backgroundColor: "#f4f4f4",
        color: "blue",
        bottom: 1
    }),
    tableData = [];

// Fill up tableData array with rows
tableData.push(Ti.UI.createTableViewRow({ title: "Hey" }));
tableData.push(Ti.UI.createTableViewRow({ title: "this" }));
tableData.push(Ti.UI.createTableViewRow({ title: "is" }));
tableData.push(Ti.UI.createTableViewRow({ title: "a" }));
tableData.push(Ti.UI.createTableViewRow({ title: "table" }));

clearButton.addEventListener("click", function() {
    Ti.API.debug("Clicked clear button.");
    table.setData(null);
    return;
});

fillButton.addEventListener("click", function() {
    Ti.API.debug("Clicked fill button.");
    table.setData(tableData);
    return;
});

// Fill table with our data
table.setData(tableData);

// Build window
win.add(clearButton);
win.add(fillButton);
win.add(table);

navwin.open();
Другие вопросы по тегам