代码之家  ›  专栏  ›  技术社区  ›  Ian Hyzy

从列表对象获取选择

  •  1
  • Ian Hyzy  · 技术社区  · 7 年前

    appmaker中有一个表,我添加了复选框,如下所示:

    app screenshot showing checkbox in list

    console.log(widget.parent.parent.parent.children.Panel1.children.Table3Panel.children.Table3.children.Table3Body.children.Table3Row.children.UserSelectionCheckbox.value);

    Cannot read property 'children' of undefined at Home.Panel1.OuSelectPanel1.Button6.onClick:1:133

    我能够使用自动填充来编写整个语句,为什么它找不到子对象?是否有任何方法可以直接引用此列表,而无需从小部件或应用程序根目录下的树?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Markus Malessa    7 年前

    对于这种类型的功能,“自动填充”(intellisense)将不适用于您。当您试图从表中获取行集合时,需要以不同的方式处理子级。对于button onClick事件,我建议使用类似的代码:

    var rows = widget.root.descendants.Table3Body.children._values;
    var emails = [];
    for (var i in rows) {
      var value = rows[i].children.Checkbox1.value;  
      if (value) {
        emails.push(rows[i].datasource.item.Email);
      }
    }
    console.log(emails);
    

    同样,在选择_值之后,自动完成代码功能将无法工作,这将返回表体的所有直接子项,这正是您想要的。

        2
  •  0
  •   Andy Rundquist    7 年前

    根据1:133,似乎在说Table3Row没有孩子。我想知道使用widget.root.subjects.Table3Row是否是针对特定表的另一种方式。

    推荐文章