Я создал пользовательский элемент управления, который берет содержимое из файла XML и отображает содержимое на странице.Довольно простые вещи.
Однако выяснилось, что мне может понадобиться заменить части контента на основе идентификатора другим содержимым вручную.
Моя идея состоит в том, чтобы раскрыть повторяемое свойство внутриОбъявление пользовательского элемента управления выглядит следующим образом:
<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>
Пока в моем userControl есть следующее (я обрезал ненужные вещи):
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 в качестве повторяемого свойства.
Я знаю, что это можно сделать, но я не могу добиться этого.Если бы кто-нибудь мог дать краткий курс о том, как это сделать, я был бы бесконечно благодарен.