Domino平台如何实现自定义表单

原创 2018年04月17日 11:37:35

Domino平台如何实现自定义表单

  做过Domino程序开发的程序猿们都知道一个事情,在这个平台上开发Web的表单是个头疼的事儿。因为开发表单必须使用设计器,而设计器是没法做到所见即所得。一般是在DW里编辑好页面,一点一点往表单里粘贴,还是挺麻烦的。很多时候,系统的表单页面是需要修改的,甚至需要由维护人员来修改,这就有点麻烦了。能不能实现一种设计,系统的表单页面可以灵活的进行修改,而且不是通过设计器来完成,就像用Web上的多文本编辑器一样修改,那多方便呀?

  我们先来分析一下,HTML页面包含的元素。一般的表单都是具备<html><head><body><form>这些基本元素的。可视部分都在<body>中,与使用这进行数据交互的一般在<form>(其实没有<form>标签也可以提交数据)。就我们此文来讲,应该是修改外观及form表单中的各种控件。有时候甚至只需要增删文字。而这些内容通通位于<body>标签内。

  这里有个比较麻烦的问题,如何读取或为动态表单中的各控件赋值?如何与后台数据库中的字段对应上?如何提交动态表单的数据?

  要想实现Web上编辑制作自定义表单,首先我们要集成一个多文本编辑器。笔者就用CKEditor举例来说吧(本文不涉及怎么集成CKEditor)。  如下图所示,这是笔者在Web编辑器中设计的一个用于输入的表单。为了方便设计的很简单,甚至有点磕碜!这是在编辑状态下显示的。

   

  再看下面的图,这是嵌入网页中后,在浏览器中显示的样子,与编辑器中看到的基本一致。当然,这只是实现了第一步。


  输入数据后,还要把数据上传到服务器上。此时应该点击保存按钮触发一个提交的动作。对应的保存按钮就要写上一点JS代码了。


加上这些JS代码后,只需利用ajax,将JSON格式的数据提交到服务器端即可。是不是很简单啊?在服务器端,笔者再利用xagent将JSON数据转换为POJO对象,然后利用JAVA的反射机制就可以实现数据的保存了,甚至都不用关心字段的名称。当然这只是简单的一种场景,如果是复杂的场景就要对数据进行处理了。

刚才回看了下,截图里的代码格式都是乱的,而且也不清晰,其实就是将form序列化成JSON格式的数据。

完整的例子如下:

<script type="text/javascript">  
$(function() {  
        $("#btsave").click(function() {  
                var params = $("#frminfo").serializeObject();  
                console.info(params);  
            })  
    });  
  
    $.fn.serializeObject = function() {  
        var o = {};  
        var a = this.serializeArray();  
        $.each(a, function() {  
            if (o[this.name]) {  
                if (!o[this.name].push) {  
                    o[this.name] = [ o[this.name] ];  
                }  
                o[this.name].push(this.value || '');  
            } else {  
                o[this.name] = this.value || '';  
            }  
        });  
        return o;  
    }  

</script>

注意事项:

1.代码里最好不要有注释。

2.CKEditor会把文本中的换行符过滤掉,因此你在编辑器写好的代码上传服务器后再打开会发现换行符都没了,因此推荐在DM中编辑好后再粘贴到CKEditor中保存。

  以上是自定义表单中数据的提交,提交不算完事,还有数据的回显如何解决那?

<未完>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sujianyu/article/details/79972523

如何定制Domino平台的登录界面

  • 2009年02月01日 13:20
  • 696KB
  • 下载

两种自定义表单设计方案 [原创]

最近参与一个项目,客户要求提供自定义表单的功能。主要的要求是:能够对表单的字段进行增删改,对显示表单的格式可以灵活定制。由于客户的表单变动可能比较频繁,所以决定实现自定义表单功能。初步设想出以下两种自...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006-12-11 16:30:00
  • 2833

关于 WebSphere Portal, Domino 扩展产品以及Domino 单点登录(SSO)的疑难解答

Technote (troubleshooting) 问题 关于 WebSphere Portal, Domino 扩展产品以及Domino 单点登录(SSO)的疑难解答 解决问题 ...
  • Gavid0124
  • Gavid0124
  • 2015-01-26 11:35:19
  • 1231

工作流实现自定义表单

定义概述:一个已经做好的表单需要绑定到节点上。 自定义表单工作模式:流程控制按钮区域是ccflow来完成,表单区域是放在控制区域下面的框架里。 注意:蓝色边框一下是一个框架,框架里...
  • jflows
  • jflows
  • 2015-07-01 15:14:24
  • 2694

Domino开发--版本管理与团队开发探索

文章出处: Domino开发--版本管理与团队开发探索(一)http://www.lotuschina.net/club/thread-16219-1-1.html Domino开发--版本管理与...
  • Gavid0124
  • Gavid0124
  • 2014-11-28 16:03:17
  • 894

自定义表单的三种方式实现

目前在项目中碰到要实现自定义表单,我从网上或请教了高手实现的方法,总结有三种的实现方式,现大概讲解下, 一种是HTML模版的方式:表单灵活定义的实现方式是通过利用Frontpage或Dreamweav...
  • cefriend
  • cefriend
  • 2008-04-02 17:39:00
  • 1674

自定义表单原理和实现思路(未完待续)

自定义表单的实现方法浅谈2008年05月29日 星期四 11:32自定义表单的用途比较广泛,在OA的自定义工作流程中、CMS功能扩展、自定义调查中都将涉及到。为什么要使用自定义表单呢?试想一下,如果某...
  • yytt123622
  • yytt123622
  • 2009-06-16 09:26:00
  • 9100

Domino/Notes Xpage技术 开发实例讲解

  • 2014年02月14日 14:04
  • 1.9MB
  • 下载

Lotus.Domino.Web编程

  • 2014年11月05日 14:21
  • 12.69MB
  • 下载

织梦jquery+ajax提交自定义表单

不写死任何东西,借助jquery ajax提交dedecms自定义表单到后台。 注意表单部分,此例只做为参考,实际项目中根据自己的情况酌情修改。 html部分 &amp;lt;form...
  • dedehtml
  • dedehtml
  • 2018-03-09 10:56:17
  • 107
收藏助手
不良信息举报
您举报文章:Domino平台如何实现自定义表单
举报原因:
原因补充:

(最多只允许输入30个字)