【问题标题】:How to create a table in adf with variable no of columns如何在 adf 中创建具有可变列数的表
【发布时间】:2015-05-14 11:51:02
【问题描述】:

您好,我正在使用 ADF (jdeve11.1.2.4) 开发 Web 应用程序。我知道如何从这篇帖子Programmatic ADF Table 以编程方式填充表格

但在上面的帖子中,列数是固定的(它是 bean 结构)。但我不能使用上面的帖子。因为我需要创建一个包含“n”列的表。表示列不固定。有时列可能是 4,有时列可能是 7,不管它是什么。假设我有两个 sql,并且都包含不同的列。

Ex: (suppose student is a table)
   select id from student
   select id,name from student

所以在上面的两个 sqls 中没有列是不同的。我需要以表格格式显示上述查询的结果集。

请帮助我如何实现这一目标。

提前致谢。

【问题讨论】:

    标签: oracle-adf jdeveloper


    【解决方案1】:

    我想知道声明模式视图对象是否有帮助?博客here。因此,在生成 UI 之前不会构建查询。您可以动态生成表格并插入列,然后绑定到 VO。

    【讨论】:

    • Joe 的想法是正确的设计,前提是您始终从同一个表(连接表)中检索数据并且只有列发生变化。
    【解决方案2】:

    这很复杂,可能需要一些额外的研究:

    1. 通过使用以下方式传递您的 sql 语句来创建程序化视图对象:

      ApplicationModuleImpl.createViewObjectFromQueryStmt(java.lang.String voName,java.lang.String 查询)

    2. 尝试在循环中构造 af:columns:

    <af:table value="#{bindings.EmployeesView1.collectionModel}" .. id="t1">
      <af:iterator id="i1" value="#{bindings.EmployeesView1.attributesModel.attributes}" var="column" rows="0">
        <af:column headerText="#{column.label}" id="c1">
          <af:outputText id="d1" attributeModel="#{column}" value="#{row.bindings[column.name].inputValue}" />
        </af:column>
      </af:iterator>
    </af:table>

    【讨论】:

    • 感谢您的宝贵时间。让我试试这个。我会尽快回复您的状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多