Example #1
0
// <snippet4>
        protected override void PerformDataBinding()
        {
            base.PerformDataBinding();

            // Do not attempt to bind data if there is no
            // data source set.
            if (!IsBoundUsingDataSourceID && (DataSource == null))
            {
                return;
            }

            HierarchicalDataSourceView view = GetData(RootNode.DataPath);

            if (view == null)
            {
                throw new InvalidOperationException
                          ("No view returned by data source control.");
            }

            IHierarchicalEnumerable enumerable = view.Select();

            if (enumerable != null)
            {
                Nodes.Clear();

                try {
                    RecurseDataBindInternal(RootNode, enumerable, 1);
                }
                finally {
                }
            }
        }
 public HierarchicalDataSourceView GetHierarchicalView(string viewPath)
 {
     if (_view == null)
     {
         _view = new HierarchicalModelDataSourceView(DataSource.ToHierarchicalModelList());
     }
     return(_view);
 }
        public void SiteMapDataSource_HierarchicalDataSourceView()
        {
            PokerSiteMapDataSource p = new PokerSiteMapDataSource();

            p.Provider = new mySiteMapProvider();
            HierarchicalDataSourceView h = p.DoHierarchicalDataSourceView("1");

            Assert.IsNotNull(h, "HierarchicalDataSourceView");
        }
 public HierarchicalDataSourceView GetHierarchicalView(string viewPath)
 {
     if (_view == null)
     {
         var type     = BuildManager.GetType(TypeName, true, false);
         var instance = Activator.CreateInstance(type);
         _view = (HierarchicalDataSourceView)instance;
     }
     return(_view);
 }
Example #5
0
        protected virtual HierarchicalDataSourceView GetData(string viewPath)
        {
            string str = viewPath;
            HierarchicalDataSourceView hierarchicalView = this.ConnectToHierarchicalDataSource().GetHierarchicalView(str);

            if (hierarchicalView == null)
            {
                throw new InvalidOperationException(System.Web.SR.GetString("HierarchicalDataControl_ViewNotFound", new object[] { this.ID }));
            }
            return(hierarchicalView);
        }
Example #6
0
        protected override void PerformDataBinding()
        {
            base.PerformDataBinding();
            this.InitializeDataBindings();
            HierarchicalDataSourceView data = this.GetData(string.Empty);

            if (data != null)
            {
                this.Nodes.Clear();
                IHierarchicalEnumerable hEnumerable = data.Select();
                this.FillBoundChildrenRecursive(hEnumerable, this.Nodes);
            }
        }
        public void TestIHierarchicalEnumerableDataSource()
        {
            List <TestNode> list = new List <TestNode> ();

            list.Add(new TestNode("test", null, null));
            TestHierarchy hierarchy          = new TestHierarchy(list);
            MyHierarchicalDataBoundControl c = new MyHierarchicalDataBoundControl();

            c.DataSource = hierarchy;
            c.DataBind();
            HierarchicalDataSourceView view = c.GetData("");

            Assert.IsNotNull(view);
        }
Example #8
0
        internal IHierarchicalEnumerable GetHierarchicalRuntimeEnumerable(string path)
        {
            System.Web.UI.WebControls.XmlDataSource designTimeXmlDataSource = this.GetDesignTimeXmlDataSource(string.Empty);
            if (designTimeXmlDataSource == null)
            {
                return(null);
            }
            HierarchicalDataSourceView hierarchicalView = ((IHierarchicalDataSource)designTimeXmlDataSource).GetHierarchicalView(path);

            if (hierarchicalView == null)
            {
                return(null);
            }
            return(hierarchicalView.Select());
        }
Example #9
0
        protected override void PerformDataBinding()
        {
            base.PerformDataBinding();
            if (!(IsBoundUsingDataSourceID) && (DataSource != null))
            {
                return;
            }
            HierarchicalDataSourceView view       = GetData(String.Empty);
            IHierarchicalEnumerable    enumerable = view.Select();

            if (enumerable != null)
            {
                StringBuilder sb = new StringBuilder();
                RecursiveDataBindInternal(enumerable, sb);
                _items = sb.ToString();
            }
        }
Example #10
0
        /// <devdoc>
        /// Gets the HierarchicalDataSourceView of the IHierarchicalDataSource
        /// that this control is bound to, if any.
        /// </devdoc>
        protected virtual HierarchicalDataSourceView GetData(string viewPath)
        {
            string currentViewPath     = viewPath;
            IHierarchicalDataSource ds = ConnectToHierarchicalDataSource();

            Debug.Assert(_currentDataSourceValid);

            Debug.Assert(ds != null);

            // IHierarchicalDataSource was found, extract the appropriate view and return it
            HierarchicalDataSourceView view = ds.GetHierarchicalView(currentViewPath);

            if (view == null)
            {
                throw new InvalidOperationException(SR.GetString(SR.HierarchicalDataControl_ViewNotFound, ID));
            }
            return(view);
        }
Example #11
0
    protected void ASPxCallback1_Callback(object sender, CallbackEventArgs e)
    {
        int newsID = int.Parse(e.Parameter);
        IHierarchicalDataSource    dataSource = (IHierarchicalDataSource)XmlDataSource1;
        HierarchicalDataSourceView view       = dataSource.GetHierarchicalView("");
        IHierarchicalEnumerable    enumerable = view.Select();
        int    index = 1;
        string text  = "";

        foreach (object obj in enumerable)
        {
            if (newsID == index)
            {
                IHierarchyData data = enumerable.GetHierarchyData(obj);
                PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(data);
                PropertyDescriptor           descriptor = properties.Find("Text", true);
                text = descriptor.GetValue(obj).ToString();
                break;
            }
            index++;
        }
        e.Result = text;
    }
Example #12
0
        public void GetHierarchicalView()
        {
            Page    page = new Page();
            DSPoker ds   = new DSPoker();

            ds.ID   = "ds";
            ds.Data = @"<?xml version=""1.0"" encoding=""utf-8""?>
					<bookstore xmlns:bk=""urn:samples"">
					  <book genre=""novel"" publicationdate=""1999"" bk:ISBN=""0192100262"">
					    <title>Pride and Prejudice</title>
					    <author>
					      <first-name>Jane</first-name>
					      <last-name>Austen</last-name>
					    </author>
					    <price>24.95</price>
					  </book>
					  <book genre=""novel"" publicationdate=""1985"" bk:ISBN=""0771008139"">
					    <title>The Handmaid's Tale</title>
					    <author>
					      <first-name>Margaret</first-name>
					      <last-name>Atwood</last-name>
					    </author>
					    <price>29.95</price>
					  </book>
					</bookstore>"                    ;
            HierarchicalDataSourceView view = ds.DoGetHierarchicalView("");
            IHierarchicalEnumerable    num  = view.Select();

            foreach (object obj in num)
            {
                IHierarchyData hdata   = num.GetHierarchyData(obj);
                XmlElement     element = (XmlElement)hdata.Item;
                Assert.AreEqual("bookstore", element.Name, "RootElementName");
                Assert.AreEqual("Pride and PrejudiceJaneAusten24.95The Handmaid's TaleMargaretAtwood29.95", element.InnerText, "InnerText");
                Assert.AreEqual(2, element.ChildNodes.Count, "ChildElementNodes");
            }
        }
Example #13
0
        protected override void PerformDataBinding()
        {
            base.PerformDataBinding();
            if (!(IsBoundUsingDataSourceID) && (DataSource != null))
            {
                return;
            }
            HierarchicalDataSourceView view       = GetData(String.Empty);
            IHierarchicalEnumerable    enumerable = view.Select();

            if (ApplicationServices.IsSiteContentEnabled && !(ApplicationServices.IsSafeMode))
            {
                SiteContentFileList sitemaps = ApplicationServices.Current.ReadSiteContent("sys/sitemaps%", "%");
                if (sitemaps.Count > 0)
                {
                    bool hasMain = false;
                    foreach (SiteContentFile f in sitemaps)
                    {
                        if (f.PhysicalName == "main")
                        {
                            hasMain = true;
                            sitemaps.Remove(f);
                            sitemaps.Insert(0, f);
                            break;
                        }
                    }
                    if (!(hasMain) && (enumerable != null))
                    {
                        StringBuilder msb = new StringBuilder();
                        BuildMainMenu(enumerable, msb, 1);
                        SiteContentFile main = new SiteContentFile();
                        main.Text = Localizer.Replace("Pages", Path.GetFileName(Page.Request.PhysicalPath), msb.ToString());
                        sitemaps.Insert(0, main);
                    }
                    string text = null;
                    if (sitemaps.Count > 1)
                    {
                        SiteMapBuilder sm = new SiteMapBuilder();
                        foreach (SiteContentFile cf in sitemaps)
                        {
                            string sitemapText = cf.Text;
                            if (!(String.IsNullOrEmpty(sitemapText)))
                            {
                                MatchCollection coll = MenuItemRegex.Matches(sitemapText);
                                foreach (Match m in coll)
                                {
                                    sm.Insert(m.Groups["Title"].Value, m.Groups["Depth"].Value.Length, m.Groups["Text"].Value);
                                }
                            }
                        }
                        text = sm.ToString();
                    }
                    else
                    {
                        text = sitemaps[0].Text;
                    }
                    StringBuilder sb = new StringBuilder();
                    if (!(String.IsNullOrEmpty(text)))
                    {
                        bool  first = true;
                        Match m     = MenuItemRegex.Match(text);
                        while (m.Success)
                        {
                            BuildNode(ref m, sb, first);
                            if (first)
                            {
                                first = false;
                            }
                        }
                        _items = Regex.Replace(sb.ToString(), "(\\{\\}\\,?)+", String.Empty).Replace("},]", "}]");
                        return;
                    }
                }
            }
            if (enumerable != null)
            {
                StringBuilder sb = new StringBuilder();
                RecursiveDataBindInternal(enumerable, sb);
                _items = sb.ToString();
            }
        }