【问题标题】:Different input type based on data type of column in listview in wicket基于 wicket 列表视图中列的数据类型的不同输入类型
【发布时间】:2015-04-19 07:29:24
【问题描述】:

我有一个 InputColumnsVO 列表,其中包含列名和列数据类型属性。我正在考虑使用 Listview 迭代这个输入列对象列表并根据列数据类型显示输入框。例如:

if datatype is date,
        display DateTextField,
if datatype is numeric,
        display dropdown,
if datatype is string, 
       display a textfield.

这可以在检票口中实现吗?或者有其他设计方法吗?

【问题讨论】:

    标签: user-interface listview wicket wicket-6 presentation-layer


    【解决方案1】:

    根据类型添加一个包含相应表单组件的面板。如果 HTML 标记非常简单,并且您不想为其使用特殊的面板,那么请改用 Fragment。

    【讨论】:

    • 是的,我认为在这种情况下,片段会给你一个更好、更易于管理的结果。但任何更复杂的事情,你最好切换到面板。特别是如果您希望能够单独测试您的组件。
    • 在显示 n 个具有自己的输入类型的列后,我有一个添加按钮,单击该按钮应创建相同数量的具有相同输入类型的列 n 删除应将其删除..hw 是否需要待处理
    • 通过在服务器端复制模型并重新渲染表单。
    【解决方案2】:

    我们以类似的方式做到这一点:我们有一个配置选项的列表视图/数据视图,它使用从工厂检索的小部件填充项目,用于根据该选项的数据类型创建编辑器。 Factory 返回我们添加到项目中的 FormComponent/FormComponentPanel/Panel。

    【讨论】:

    • 您能否发布一个使用片段用于不同字段类型的示例?
    • 不幸的是,没有什么真实的。我们几乎不使用片段——我们喜欢有额外的标记文件,这样更容易为我们定位标记。但是使用片段类似于使用面板。您只需将它们放在片段实例化时可用的容器中(例如,一个包含所有它们的面板)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2021-05-24
    • 2019-10-29
    • 2017-08-29
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多