我通過從xml文件進行xslt轉換,在我的asp.net頁面上動態生成控件。我將需要在後面的代碼中引用這些控件。我想將這些引用添加到列表/哈希表/創建過程中的任何內容(在xslt文件我想),以便我可以達到他們以後,我不知道如何做到這一點。 我將不勝感激任何建議, agnieszkaASP.NET - 通過xslt轉換生成的控件
1
A
回答
2
使用XSLT轉換XML後,您可以將輸出傳遞給ASP.Net ParseControl方法,它將返回您的控件隨時可用。例如,此代碼將在頁面上放置兩個按鈕:
protected void Page_Load(object sender, EventArgs e)
{
// Fetch your XML here and transform it. This string represents
// the transformed output
string content = @"
<asp:Button runat=""server"" Text=""Hello"" />
<asp:Button runat=""server"" Text=""World"" />";
var controls = ParseControl(content);
foreach (var control in controls)
{
// Wire up events, change settings etc here
}
// placeHolder is simply an ASP.Net PlaceHolder control on the page
// where I would like the controls to end up
placeHolder.Controls.Add(controls);
}
0
你可以更好地瞭解你想做什麼?
XML> XSLT>產生aspx頁面
聽起來接近重塑的Windows Presentation Framework或XUL
或者是 ASPX讀取XML>使用XSLT DOM元素添加到網頁... 聲音如AJAX
你想用寫出來一個唯一的ID屬性變換 http://www.w3schools.com/XSL/el_attribute.asp
0
可能會非常棘手,機智h純粹的XSL解決方案。
您可能需要調用一個迭代所使用的xml節點的模板來生成控件,然後寫出一個將它們添加到所選容器的c#/ VB腳本塊。
另一種選擇是將msxsl:腳本添加到您的模板,並使用c#或其他語言生成所需的輸出。這有時比純xsl解決方案更容易,但確實伴隨着性能成本。
看看umbraco的源代碼可能是值得的,它使用xsl非常厲害,可能已經在做你正在尋找的東西。
0
感謝您的所有答案。
這是我做的(這不是我的代碼,但我做同樣的方式):
私人無效CreateControls(){ 的XPathDocument surveyDoc =新的XPathDocument(使用Server.Mappath(「ExSurvey .XML「));
// Load the xslt to do the transformations
XslTransform transform = new XslTransform();
transform.Load(Server.MapPath("MakeControls.xslt"));
// Get the transformed result
StringWriter sw = new StringWriter();
transform.Transform(surveyDoc, null, sw);
string result = sw.ToString();
// parse the control(s) and add it to the page
Control ctrl = Page.ParseControl(result);
form1.Controls.Add(ctrl);
}
首先溶液(來自通用錯誤)不夠好,因爲我需要確定的控件,例如XSLT轉換期間我將創建3組的控制,所有具有不同的ID。我想將不同散列表中的每個控件從一個組中引用,以便稍後我會知道每個組中的哪些控件。
最好的解決方案是在創建控件時做到這一點(所以在xslt代碼中),但我不知道它是否可能。
相關問題
- 1. XSLT XML轉換成XML通過XSLT
- 2. 通過metric.exe生成的XML的XSLT轉換
- 3. 換行轉換爲通過XSLT生成的文件中的回車
- 4. Marklogic Content Pump通過XSLT轉換生成多個文檔
- 5. XSLT轉換替換通過文檔
- 6. 如何通過服務器控件生成完整的ASP.Net Webform?
- 7. XSLT轉換的ASP.NET問題
- 8. XSLT轉換成表
- 9. 通過ASP.NET生成報告
- 10. Jenkins未通過Ant XSLT生成JMeter HTML
- 11. 通用XSLT轉換
- 12. 通過ASP.NET菜單控件禁用JavaScript生成
- 13. 通過XSLT將XML轉換爲XML
- 14. 通過xslt將XML轉換爲HTML
- 15. 通過XSLT將xml轉換爲xml
- 16. 通過linux shell進行XSLT 2.0轉換
- 17. 通過XSLT將XML轉換爲XML
- 18. 通過輸入textarea用XSLT轉換XML
- 19. asp.net生成控件動態
- 20. XSLT轉換通用的XML
- 21. XSLT轉換HTML列表轉換成XML
- 22. 條件XSLT轉換
- 23. xslt條件轉換
- 24. ASP.NET:通過用戶控件
- 25. 循環通過控件asp.net
- 26. 通用XSLT轉換代碼
- 27. ASP.NET,XSLT和動態控件
- 28. 轉換爲生成文件
- 29. 通過XSLT將XML轉換爲平面文件
- 30. 通過WCF生成文件,通過訪問驗證通過ASP.NET下載
哈!然後,我從今天開始學習了一些新的有用的東西!:-) – 2008-11-26 10:15:22