【问题标题】:Set selection in Dashcode List Controller在 Dashcode 列表控制器中设置选择
【发布时间】:2010-05-08 22:23:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript safari dashcode


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      以下是根据名称选择特定项目的示例。对于这个问题,您可以简单地明确设置 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]);
                  }
              }
          }
      }
      

      【讨论】:

        【解决方案3】:
        function load()
        {
            dashcode.setupParts();
            var list = document.getElementById("itemsList");
            list.setSelectionIndexes([0]);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多