예제 #1
0
        private void SetTextFromMarkupText(string markupText)
        {
            MarkupParser markupParser = new MarkupParser();

            markupParser.Markup = markupText;
            markupParser.ReplaceAnchorValues(this.DataSource, this.ListSeparator);
            StringBuilder stringBuilder = new StringBuilder();

            base.Links.Clear();
            foreach (object obj in markupParser.Nodes)
            {
                XmlNode xmlNode = (XmlNode)obj;
                if (XmlNodeType.Element == xmlNode.NodeType && "a" == xmlNode.Name)
                {
                    XmlAttribute xmlAttribute = xmlNode.Attributes["id"];
                    if (xmlAttribute != null)
                    {
                        base.Links.Add(new StringInfo(stringBuilder.ToString()).LengthInTextElements, new StringInfo(xmlNode.InnerText).LengthInTextElements, xmlAttribute.Value);
                    }
                }
                stringBuilder.Append(xmlNode.InnerText);
            }
            if (base.Text == stringBuilder.ToString() && !string.IsNullOrEmpty(base.Text))
            {
                this.OnTextChanged(EventArgs.Empty);
            }
            base.Text = stringBuilder.ToString();
        }