从DynamicForm获取所有字段

Mar*_*usz 6 xsd smartgwt

我使用从xsd schema生成的DataSource.我需要从DataSource获取所有字段,也是嵌套的字段.我的问题与Smartclient论坛论坛中的这个主题一样,当我使用DataSource.getFields()它只返回第一级字段时.

有谁知道如何获得嵌套字段?

Mar*_*usz 0

\n我找到了解决方案。要获取嵌套字段,可以使用 DataSource.getDataSource(ID)。例如,如果 dataSource 是 main DataSource,则可以这样做: \n

\n\n
    private List<DataSourceField> getAllFields(DataSource dataSource)\n    {\n        List <DataSourceField> fieldList = new ArrayList<DataSourceField>();\n        DataSourceField [] fields = dataSource.getFields();\n        fieldList.addAll(Arrays.asList(fields));\n        for (DataSourceField field : fields);\n        {\n            String fieldName = field.getName();\n            DataSource ds = DataSource.getDataSource(fieldName);\n            if (ds != null)\n            {\n                fieldList.remove(field);\n                DataSourceField[] nFields = ds.getFields();\n                fieldList.addAll(Arrays.asList(nFields));\n                getAllFields(ds);\n            }\n        }\n        return fieldList;\n    }\n\n
Run Code Online (Sandbox Code Playgroud)\n