在SharePoint上查找信息路径表单的当前视图名称

时间:2014-02-26 19:57:46

标签: c# sharepoint infopath

我在SharePoint网站上有一个多视图InfoPath表单。我需要使用C#从表单的当前视图生成PDF。我做了很多搜索,但到目前为止还没有答案。

非常感谢您的输入。

2 个答案:

答案 0 :(得分:1)

如果您使用的是InfoPath 2010,则可以使用java脚本找到当前视图的名称。在渲染页面中,有一个名为“CurrentFormData.g_objCurrentFormData”的Array变量,它保存当前表单查看器的数据。

查找查看器的客户端名称(例如:ctl00_PlaceHolder1_XmlFormView1)并使用该名称读取数据。例如:

CurrentFormData.g_objCurrentFormData[ctl00_PlaceHolder1_XmlFormView1]

这是一个数组本身,其中第9个元素是当前视图的名称。

CurrentFormData.g_objCurrentFormData[ctl00_PlaceHolder1_XmlFormView1][9]

读取它,将其存储在您可以在服务器端读取的隐藏服务器端输入字段中。

这个解决方案虽然很糟糕。如果Microsoft决定将该值存储在其他位置,则此代码将无法正常工作。

答案 1 :(得分:0)

如果它不是基于浏览器的表单,那么您可以从与表单

相关联的C#代码中执行此操作
this.CurrentView.Export(@"c:\temp\YourForm.pdf", ExportFormat.Pdf);

您还可以打印到Infopath 2010及更高版本中内置的PDF文件。

或者,您可以使用ITextSharp

之类的内容生成PDF