0

假设我有大量现有的 html 表单,我现在没有能力重写,但我确实想在 ExtJS 中进行的开发,然后在有时间的时候重写旧的。假设我想让旧表单看起来像是用 ExtJS 创建的,这样用户在新旧表单之间切换时不会感到完全震惊。为了保持它的挑战性,我们还要补充一点,它应该符合 ExtJS 2.2 [原文如此]。

我希望我可以摆脱一些简单的事情,比如将 html 放入面板并完成,如下所示。没有这样的。

var pnlForm = new Ext.Panel({
    width:400,
    title:'Panel with a form',
    renderTo: Ext.getBody(),
    html: '<form>Test<br><input type="text"><br><input type="text"><br><input type="button" value="spam"></form>'
});

ExtJS Panelige 失败的截图

很明显,这只是一个 ExtJS 面板,中间有默认外观(即“无”外观)html。

虽然我根本不想走这条路,但我也尝试了这篇文章中的“将 html 表单转换为 ExtJS”功能。它没有用,但即便如此,我宁愿只是整合外观和感觉而不是改造任何东西。

有什么简单的方法可以清洗现有的 html 表单代码以匹配新 ExtJS 内容的外观?

4

2 回答 2

2

真的只有3个选项:

  1. 重写你的代码以使用正确的 Ext JS 创建语法,然后它应该可以正常工作(听起来你反对这样做)
  2. 做一些你发布的事情,除了你必须镜像 Ext JS 输出的标记并使用相同的 CSS 类名,这样你就可以利用现有的 CSS
  3. 如上所述,但编写您自己的自定义 CSS 以匹配您自己的标记的 Ext JS 外观,而不必重新创建 Ext JS 标记 1:1

无论你选择哪种方式,都会有一些努力。#2 和 #3 的缺点是,即使您可能可以实现视觉奇偶校验,但在字段行为、验证等方面会有很大的功能差异,这可能会成为最终用户的错误。这假设您不需要任何专门的输入,例如日期选择器。

这没有灵丹妙药。如果是我,我会努力并以正确的方式做一次并完成它(#1)。任何其他选择,无论如何你最终都会重做。

于 2012-04-19T03:57:07.193 回答
0

我认为将这些形式转换为 ExtJs 样式会更容易、更有效率。您可以使用 perl 或类似的东西编写某种解析器。

于 2012-04-19T00:44:50.193 回答