2011-08-17 36 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