2011-08-17 81 views
1

有没有办法让XML呈现在XMLFormView中?我正在尝试为InfoPath表单创建一个“另存为PDF”按钮的自定义Web部件。我们的想法是将XML与表单的XSL结合起来,并将生成的HTML转换为PDF,然后将其作为弹出窗口呈现给用户。从XMLFormView提取XML

因为它是作为弹出窗口显示的,所以不能使用工作流程。

回答

0

我们最终使用XmlFormHostItem.NotifyHost方法将HTML发送到按钮单击事件中的自定义Web部件,该事件使用Winnovative HTML转换为PDF转换器将HTML转换为PDF。

HTML生成从InfoPath中隐藏代码:此方法的

var formData = new XmlDocument(); 
var xslt = new XslCompiledTransform(true); 

// Load the form data 
formData.LoadXml(MainDataSource.CreateNavigator().InnerXml); 
// Extract the stylesheet from the package 
xslt.Load(ExtractFromPackage("Print.xsl")); // (uses Template.OpenFileFromPackage(string fileName) to get xsl) 

// Perform XSL-transformation 
// [...] 

// Send HTML to web part 
this.NotifyHost(formData.InnerXml); 

一个缺点是,NotifyHost事件仅每个表单触发一次,因此如果用户点击“另存为PDF”,然后取消,他必须重新加载表单才能保存为PDF。

+0

更好的方法是直接从自定义Web部件获取XML。不知道为什么我们不这样做,首先。随机缓慢,我想:) – Eske 2011-10-31 14:33:46