1
我創建了一個用戶控件,它從XML文件獲取內容並呈現頁面上的內容。相當直接的東西。用戶控件聲明中類似xml的屬性
但是,現在出現了,我可能需要用其他手冊內容替換部分基於id的內容。
我的想法是展現這樣的用戶控件的聲明中可重複的特性:
<my:XmlRenderSource ID="XmlRenderSource1" runat="server" XmlUrl="xml/sample.xml">
<OverrideContent targetId='thingToReplaceId'><p>New Content</p></OverrideContent>
<OverrideContent targetId='thingToReplaceId2'><p>New Content</p></OverrideContent>
</my:XmlRenderSource>
到目前爲止,我已經在我的用戶控件(我已經削減了無用的東西)以下:
public class OverrideContent
{
public string targetId { get; set; }
}
public class OverrideContentCollection : List<OverrideContent>
{
}
[
ParseChildren(
typeof(OverrideContent),
DefaultProperty = "OverrideItems",
ChildrenAsProperties = true
)
]
public partial class XmlRenderSource : System.Web.UI.UserControl
{
private string xmlUrl = "";
private string xmlUrlBase = "";
public OverrideContentCollection OverrideItems
{
get;
set;
}
// Loads of other code that doesn't matter for this
}
在加載或預渲染的地方,我循環OverrideContent項並在渲染之前替換部分xml。我明白我該怎麼做,但我有一個明顯的問題暴露OverrideContent項目作爲一個可重複的屬性。
我知道這可以做到,但對於我的生活我無法完成。如果任何人都可以提供關於如何做到這一點的速成班,我會永遠感激。
這接近我所需要的,但然後我需要能夠將內容添加到OverrideContent對象的中間。到目前爲止,我讀過的所有內容都不允許在usercontrols之間放置內容,所以我認爲我需要創建一個自定義控件,儘管我將它添加到彙編列表中,但仍未顯示。如果可以告訴我如何獲取這些控件的innerHTML,這正是我所需要的。 – cdutson 2010-09-13 12:33:21
我不明白你的意思是「在usercontrols之間放置內容」。你想在OverrideContent元素之間添加純文本嗎?或OverrideContent元素的開始和結束標記之間的純文本? – 2010-09-13 12:59:32
參考我最初的例子,看看我的意思。基本上,用戶控件中的所有內容打開和關閉標記,我想存儲,但不呈現。然後,我想使用該存儲的信息來替換XML文檔中的內容。我知道如何做實際的替換,但它是我無法弄清的usercontrol標籤之間的內容。 – cdutson 2010-09-13 13:08:26