Каков наилучший способ передачи сложных данных в элемент управления ASP.Net? - PullRequest
0 голосов
/ 24 октября 2009

Я хочу передать сложную информацию в элемент управления. Эквивалент всего документа XML. Что было бы лучшим способом сделать что-то вроде этого:

<MyPrefix:MyControl runat="server">
  <Actions>
    <Action Name="Value" SomeParam="SomeValue" AnotherParam="AnotherValue"/>
    <Action Name="Value"/>
  </Action>
</MyPrefix:MyControl>

Могу ли я просто иметь свойство "Actions" в виде строки, затем обернуть его содержимое в корневой тег и проанализировать его как XML?

Есть ли у вас какие-либо рекомендации относительно лучшей практики?

Ответы [ 2 ]

1 голос
/ 24 октября 2009

ага, понял

using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing.Design;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;

namespace Unknown
{

    public class TestBuilder : ControlBuilder
    {

        public override bool AllowWhitespaceLiterals()
        {
            return false;
        }

        public override bool HtmlDecodeLiterals()
        {
            return true;
        }

    }

    [ToolboxData("<{0}:Test runat=\"server\" />"), DefaultProperty("Actions"), ParseChildren(true, "Actions"), ControlBuilder(typeof(TestBuilder))]
    public class Test : WebControl
    {

        [PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty), Editor(typeof(MultilineStringEditor), typeof(UITypeEditor))]
        public string Actions { get; set; }

        protected override void OnLoad(System.EventArgs e)
        {
            XDocument doc = XDocument.Parse("<Actions>" + this.Actions + "</Actions>");

            base.OnLoad(e);
        }

    }

}
0 голосов
/ 24 октября 2009

Вы можете добавить свойство типа XmlFileName и прочитать соответствующий файл, когда хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...