0

我在 Google 电子表格中构建的 UI 存在问题。我将首先解释一下它是如何工作的,然后我会解决这个问题。UI 是一个连接 SQL 数据库的相当简单的程序,它允许用户创建新记录、查询、搜索和呈现报告。我已经在 GUI 构建器中创建了所有面板(例如介绍页面、创建记录)。当用户在 UI 中导航时,我用我希望用户看到的新面板替换了一个 Grid。例如,在介绍页面上有一个创建按钮,当用户单击按钮时,介绍面板所在的网格被创建记录面板替换。我为用户查询/搜索数据创建了两种方式。第一种方法是在介绍面板上选择一个数字范围,然后单击查询按钮。这将在我将调用 MainForm 的 GUI 构建面板中查询最后 10 条左右的记录。第二种方法是“搜索”工作。在介绍页面上有一个搜索按钮,当用户点击按钮时,它会进入一个新页面;网格切换到搜索面板。在新页面/面板上,用户可以输入一些参数进行搜索。用户单击搜索按钮后,程序应将搜索结果加载到 MainForm 中,方式与从介绍页面查询时相同。我已将整个功能逐行分开,因此我确信问题与加载面板/组件有关。我的意思是这几行代码。在介绍页面上有一个搜索按钮,当用户点击按钮时,它会进入一个新页面;网格切换到搜索面板。在新页面/面板上,用户可以输入一些参数进行搜索。用户单击搜索按钮后,程序应将搜索结果加载到 MainForm 中,方式与从介绍页面查询时相同。我已将整个功能逐行分开,因此我确信问题与加载面板/组件有关。我的意思是这几行代码。在介绍页面上有一个搜索按钮,当用户点击按钮时,它会进入一个新页面;网格切换到搜索面板。在新页面/面板上,用户可以输入一些参数进行搜索。用户单击搜索按钮后,程序应将搜索结果加载到 MainForm 中,方式与从介绍页面查询时相同。我已将整个功能逐行分开,因此我确信问题与加载面板/组件有关。我的意思是这几行代码。我已将整个功能逐行分开,因此我确信问题与加载面板/组件有关。我的意思是这几行代码。我已将整个功能逐行分开,因此我确信问题与加载面板/组件有关。我的意思是这几行代码。

  var Component = app.loadComponent("MainForm");
  var panel = app.createVerticalPanel().setSize("770px", "900px").add(Component);
  app.getElementById("contentGrid").setWidget(0,0, panel);

但是为什么它会在一种情况下加载,而在另一种情况下却没有呢?也不是加载组件的方法,而是返回面板/组件。

总而言之,当我使用查询函数加载组件时,它可以工作,但是当我在搜索函数中加载组件时,我得到错误:作为参数传入的不兼容类型。此外,我将 MainForm 组件加载到其他两个函数中,并且它在大多数情况下都可以正常工作,但有时我会遇到相同的错误。

4

1 回答 1

1

我认为你的方法并不理想,load component不应该被多次调用。将所有面板放在同一个组件中并利用每个面板的可见性来按需显示/隐藏它们会更有效率。每个面板都应插入垂直面板中,以便在“旧面板”隐藏时“新面板”滑到其位置。

这篇文章中展示了这种方法的一个示例,用于模拟选项卡,并且可以很容易地适应您的需求。

顺便说一句,这种方法也非常快速且响应迅速,因为完整的 UI 从一开始就准备好了;-)

于 2013-01-28T07:09:09.067 回答