在 Dashcode 列表控制器中设置选择

发布于 2024-09-01 00:07:12 字数 326 浏览 6 评论 0原文

我的 Dashcode 项目中有一个列表控制器,它从动态源中提取数据。

在我的列表控制器加载其数据后,我想将其选定的索引设置为 0 - 以便显示列表中第一项的信息。我一生都无法弄清楚如何做到这一点。我尝试过:

function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    //list.setSelectionIndexes(0); // nope
    //list.selectedIndex = 0; // nope
}

I have a list controller in my Dashcode project, it pulls its data from a dynamic source.

After my list controller has loaded its data I'd like to set it's selected index to 0 - so that information for the first item in the list is shown. I can't for the life of me figure out how to do this. I've tried:

function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    //list.setSelectionIndexes(0); // nope
    //list.selectedIndex = 0; // nope
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

抚笙 2024-09-08 00:07:12

无需为此编写任何代码。在检查器中编辑列表的属性,然后在属性选项卡中取消选中允许空选择。如果不允许空选择,则在加载列表时将选择列表中的第一项。

No need to write any code for that. Edit the properties for the list in the inspector and uncheck allow empty selection in the attributes tab. With no null selection allowed the first item in the list will be selected when the list loads.

北方的韩爷 2024-09-08 00:07:12

以下是根据名称选择特定项目的示例。对于这个问题,您可以简单地显式设置 0 索引 - 我认为 Vicente 的答案更适合所提出的问题,但这对于根据查询字符串等选择项目很有用。

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]);
            }
        }
    }
}

Here's an example for selecting a specific item based on its name. For this question, you could simply explicitly set the 0 index - I think Vicente's answer is more appropriate for the question asked, but this can be useful for selecting an item based on a querystring, etc.

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]);
            }
        }
    }
}
女皇必胜 2024-09-08 00:07:12
function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    list.setSelectionIndexes([0]);
}
function load()
{
    dashcode.setupParts();
    var list = document.getElementById("itemsList");
    list.setSelectionIndexes([0]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文