如何设计几个外观几乎相似的表格?

发布于 2024-12-03 08:22:09 字数 105 浏览 0 评论 0原文

我用 UIBinder 设计了大约 6 个表单,它们看起来几乎相同,区别在于两三个字段。我正在考虑构建一种包含所有可能字段的表单,并根据情况隐藏或显示字段。

你觉得这个方法怎么样?

I have about 6 forms to design with UIBinder that look almost the same, the difference is two or three fields. I was thinking about building one form with all the possible fields and hide or show fields depending on the case.

What do you think about this method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对你再特殊 2024-12-10 08:22:09

它可以很好地工作。您可以使用实现 HasWidgets 的 UiBinder 定义一个 BaseForm 类,然后使用类似的内容定义 SpecificForm1.ui.xml

<custom:BaseForm>
    <g:TextBox ui:field="componentSpecificToThisForm" />
    <g:Button>A button!</g:button>
</custom:BaseForm>

以及使用类似的内容定义 SpecificForm2.ui.xml ,

<custom:BaseForm>
    <g:Label>Something totally different</g:Label>
    <g:Button>A button!</g:button>
</custom:BaseForm>

效果非常好!

It can work well. You can define a BaseForm class with UiBinder that implements HasWidgets, and then define SpecificForm1.ui.xml with something like

<custom:BaseForm>
    <g:TextBox ui:field="componentSpecificToThisForm" />
    <g:Button>A button!</g:button>
</custom:BaseForm>

and SpecificForm2.ui.xml with something like

<custom:BaseForm>
    <g:Label>Something totally different</g:Label>
    <g:Button>A button!</g:button>
</custom:BaseForm>

it works great!

窝囊感情。 2024-12-10 08:22:09

我尝试过类似的方法,构建一种隐藏/显示适当字段的表单是最简单的解决方案。另一个想法是创建一个工厂,然后根据您的需要构建您的表单。

因此,您基本上创建了表单组成的组件,工厂通过构造函数依赖注入将它们连接在一起。对我来说效果很好,而且还有一个额外的好处,那就是很容易扩展你的形式。

(稍后我会添加一个例子)。

I've tried something similar, and building one form where I hid/show the appropriate fields was the most simple solution. Another idea would be create a factory, which then builds your form according to your needs.

So, you basically create the components your form is composed of, and the factory wires them together via constructor dependency injection. Worked very well for me, and also has the added benefit that it is very easy to extend your form.

(I'll add an example later).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文