Infoview的功能是把微软infoPath表单转换成aspx表单,功能简单实用。

安装之后打开http://localhost/InfoView/ 来试用。
一:上传xsn文件。

二:开始转换,提示转换成功。
三:浏览,填写提交表单了。

是否感觉挺不可思议的?
我大致看了一下它的实现方式。
第一步上传过程中把infoPath解包,然后用字符串替换的方法把infopath里出现的表单元素:
plaintext等替换成网页用的表单元素,替换过程中加上infoview的一些标识,和数据验证等,供以后数据处理使用。
例:infopath中的文本框类型PlainText被替换成下面的形式。
<INPUT id=InfoView_ID26 onclick="InfoView_OnClick(this, 'InfoViewForm1');" onchange="InfoView_UpdateXMLField(this, 'InfoViewForm1');" xd:infoViewID="ID26" xd:binding="ID26" xd:xctname="PlainText" xd:CtrlId="submittedByEmailAddressPrimary_1">

安装之后打开http://localhost/InfoView/ 来试用。
一:上传xsn文件。

二:开始转换,提示转换成功。
三:浏览,填写提交表单了。

是否感觉挺不可思议的?
我大致看了一下它的实现方式。
第一步上传过程中把infoPath解包,然后用字符串替换的方法把infopath里出现的表单元素:
plaintext等替换成网页用的表单元素,替换过程中加上infoview的一些标识,和数据验证等,供以后数据处理使用。
例:infopath中的文本框类型PlainText被替换成下面的形式。
注意看上面的onchange="InfoView_UpdateXMLField(this, 'InfoViewForm1'),此处功能是在表单项改变时时时更新网页里的xml数据岛。
替换之后生成aspx文件,生成的表单元素都是客户端控件<input ...,而不是大家所期望的<asp:TextBox>这样的服务器端控件.
之后所有的数据操作都是用javascript结合xml数据岛完成的.(注意看下图的三个xml数据岛)

填写的数据提交到什么地方?答案是xml文件。
总体看来,Infoview基本上实现了从infopath到aspx的转换,不过Infoview不能定义表单提交后的处理,提交后
生成的是xml文件,如果你要指定数据提交到数据库,这个转换需要自己动手去实现.
浙公网安备 33010602011771号