Вопрос

У меня есть контроллер списка в моем проекте Dashcode, он вытягивает свои данные из динамического источника.

После того, как мой список контроллера загрузил свои данные, я хотел бы установить его выбранный индекс до 0 - так что информация для первого элемента в списке отображается. Я не могу за жизнь меня выяснить, как это сделать. Я пробовал:

function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    //list.setSelectionIndexes(0); // nope
    //list.selectedIndex = 0; // nope
}
Это было полезно?

Решение

Не нужно писать любой код для этого. Отредактируйте свойства для списка в инспекторе и снимите флажок Разрешить пустой выбор на вкладке атрибутов. Без нулевого выбора не разрешено первый элемент в списке будет выбран при нагрузке списка.

Другие советы

Вот пример для выбора конкретного элемента на основе его имени. За этот вопрос вы можете просто явно установить индекс 0 - я думаю, что ответ Vicente более подходит для заданного вопроса, но это может быть полезно для выбора элемента на основе QueryString и т. Д.

function load()
{
    dashcode.setupParts();

    setSelectedItem();
}

function setSelectedItem()
{
    var itemSource = dashcode.getDataSource("itemsSource");
    var inProgress = itemSource.valueForKey("queryInProgress");

    if(inProgress)
    {
        setTimeout("setSelectedItem()", 200);
    }
    else
    {
        var items = itemSource.valueForKeyPath("content.items")
        for(i=0;i<items.length;i++)
        {
            if(items[i].name.toLowerCase() == "specificItemName")
            {
                document.getElementById("list").object.setSelectionIndexes([i]);
            }
        }
    }
}
function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    list.setSelectionIndexes([0]);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top